Spring中常用的设计模式
常用的设计模式(23种)如下
-
创建型:
工厂方法模式Factory Method,抽象工厂模式Abstract Factory 建造者模式Builder,原型模式Prototype,单例模式Singleton
-
结构型:
适配器模式Adapter,桥接模式Bridge,组合模式Composite 装饰者模式Decorator,门面模式Facade,亨元模式Flyweight, 代理模式Proxy
-
行为型:
解释器模式Interpreter,模板方法模式Template Method, 责任链模式Chain of Responsibility,命令模式Commond 迭代器模式Iterator,调解者模式Mediator,备忘录模式Memento, 观察者模式Observer,状态模式State,策略模式Strategy, 访问者模式Visitor
设计模式在应用中遵循六大原则
-
开闭原则
定义:对扩展开放,对修改关闭。为了使程序的扩展性好,易于维护和升级。想要达到这样效果,我们需要使用接口和抽象类。
-
李氏代换原则
定义:里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的 功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基 础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开- 闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的 具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。
-
依赖倒闭原则
定义:是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。
-
接口隔离原则
定义;使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思 想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出 现:降低依赖,降低耦合。
-
迪米特法则
定义:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。
- 合成复用原则
定义:是尽量使用合成/聚合的方式,而不是使用继承。
工厂模式
-
简单工厂模式
应用场景:又叫做静态工厂方法(StaticFactory Method)模式,但不属于23 种设计模式之一。简单工厂模式的实质是由一个工厂类根据传 入的参数,动态决定应该创建哪一个产品类。 Spring 中的 BeanFactory 就是简单工厂模式的体现,根据传入 一个唯一的标识来获得 Bean 对象,但是否是在传入参数后创建还 是传入参数前创建这个要根据具体情况来定。
归类 特点 穷举
创建型模式 是复杂工厂模式的思维模型 批量生产,标准化 -
工厂方法模式
应用场景:通常由应用程序直接使用 new 创建新的对象,为了将对象的创建和使用相分离,采用工厂模式,即应用程序将对象的创建及初始化 职责交给工厂对象。 一般情况下,应用程序有自己的工厂对象来创建 Bean.如果将应用 程序自己的工厂对象交给 Spring 管理,那么 Spring 管理的就不 是普通的 Bean,而是工厂 Bean。
归类 特点 穷举
创建型模式 对于调用者来说,隐藏了复杂的逻辑处理过程, 流水线生产调用者只关心执行结果。 对于工厂来说要对结果负责,保证生产出符合 规范的产品。
- 抽象工厂模式