一、设计模式一句话总结
创建型模式
1、单例(Singleton)模式:保证一个对象
2、原型(Prototype)模式:快速克隆一个自己
3、工厂方法(FactoryMethod):
- 简单工厂(一个方法):if-else判断创造对象。产品线单一。
- 工厂方法(很多方法):每个产品一个方法就行。
4、抽象工厂(AbstractFactory):多工厂+很多方法。
5、建造者(Builder)模式:每一个建造细节都可以传入,但是都不是必须。如果是必须,就构造器强制
结构模式
1、适配器(Adapter)模式:连接两个不同接口
2、桥接(Bridge)模式:连接同--个东西的两个不同维度代理(Proxy)模式:动态少理+cglib
3、装饰(Decorator)模式:静态代理=装饰。被装饰的对象传入。
4、外观、门面(Facade)模式:把多个类的多个方法。合成到一个类里面引用。
5、享元(Flyweight)模式:将原对象通过池技术共享
6、组合( Composite)模式:a里面属性有b (a)对象就是组合
7、过滤器模式(Filter Pattern)
行为模式
1、模板方法(Template Method)模式:
- 父类定义了一个大方法,里面调用了一堆小方法步骤。小方法步骤子类实现即可
2、策略(Strategy)模式:
- 每一种算法封装成一个策略。别人-->策略对象.方法调用()
3、命令(Command)模式:Controller、ervice、Dao
4、职责链(Chain of Responsibility)模式:Filter、维护链条+游标+递归
5、状态(State)模式:和策略很像,状态要维护状态流转。
6、观察者(Observer)模式:把所有观察者List起来,然后foreach调用
7、中介者(Mediator)模式:所有类都引入一个类的对象,通过这一个对象调用。
8、迭代器(lterator)模式:自定义遍历算法。自己本类的迭代器遍历自己本类里面的集合
9、访问者(Visitor)模式:小爱机器人,cpu、disk能要被升级包升级
10、备忘录(Memento)模式:把复杂对象的关键属性抽取出来进行保存
11、解释器( Interpreter)模式:语法分析,大解析器组合了很多小解释器,进行语法解析