装饰着模式
创建对象时,使用装饰类来初始化。当执行类时,依次执行装饰类的方法,就想剥冬笋。
代理模式
代理类与具体的实现类都继承相同的父类。在代理类中有实现类的实例,外部调用代理类的方法时,间接调用实现类的方法。
代理类与实现类有共同的接口。
简单工厂模式
工厂类根据不同的要求,生成不同的实现类。所有实现类继承同一个接口。
策略模式
或者叫做对策模式,根据不同的情况需求,来生成不同的解决方案。
外观模式(facade)
客户端不需要知道具体细节,选择其中的一个套餐。使接口简单化,外部调用子系统的汇总。
原型模式
简单说就是克隆模式,以已有的对象初始化新对象。特别想linux的zygote.
模板方法模式
特别好理解,在抽象类中定义N个抽象方法,其中一个方法调用这些抽象方法。子类继承后不需要再次实现此方法。
建造者模式
主要特点是将创建过程集合化,使调用者不用过多关注创建过程。更高级的方式是链式初始化。
观察者模式
根据某个事件的发生,来激活一系列的动作。比如数据库更新了,界面要更新现实数据。事件发布者1 — 事件订阅者N
抽象工厂模式
在简单工厂方法的基础上,将工厂类进行抽象。缺点是当工厂已经很多了再增加一个方法,要修改很多地方(n^2)。
实现“对修改关闭、对扩展开放”
状态模式
将状态(if中的判断条件)和动作封装起来。系统可以根据当前状态执行相同的方法,得到相应状态的结果。更进一步有状态机机制。有限状态机(StateMachine)学习总结
适配器模式
适配,即适配外部的修改&调用。当2个模块或系统底层存在差异时不能直接通信,那么使用适配器模式来屏蔽差异。适配2个模块不同的接口,使2者能协同工作。
迭代器模式
Java集合类中有大量迭代器,此模式就是这个方式。
单例模式
要保证系统运行时,目标类只有一个实例对象。详见反射机制会破坏单例模式嘛
桥接器模式
本人认为此模式是为了优化代理模式,此模式分离了抽象与实现的固定关系。
2019.01.26