创建模式
Factory
父类不知道具体要实例化哪一个子类,所以Factory中只提供接口,而将实例化在子类中实现。
AbstractFactory
创建一组相关有依赖的类
Singleton
创建唯一的对象,用一个static变量来记录创建对象的数量。
Builder
对象的创建过程有很多步,每步有新的参数。构建的过程要和实现分离,同样的创建入口,但是得到的对象不同。
Prototype
自我复制。
拷贝构造函数:浅层拷贝函数,深层构造函数。
结构模式
Bridge
不同场景的不同实现,新的需求带来的类数量的增加。多组合少继承。
人开着不同的车在不同的路跑;人,车和路分别抽象。组合的时候,增加了耦合。
int main(){
AbstractRoad Road = new SpeedWay();
Road.Car = new Bus();
People person = new Man();
Person.Road = Road;
person.run();
}
Adapter
我们的接口和要使用的库的接口不一致的时候,提供统一的接口。
Decorator
State
每个状态一个类concrete state,共同继承一个父类state。一个控制状态转化的类content,令state为友元类,从而可以在每个state内部运行的时候调用content的change state()函数。
首先content初始化为初始状态A,然后调用content的运行函数,每个state的运行函数的接口都一致,继承state的方法。