简单工厂
通过一个工厂类来创建不同的产品类(封装了对象的创建);
策略模式
将对象组合进策略类中;
单一职责原则
对于一个类而言,应该仅有一个引起它变化的原因。如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。
开放封闭原则
对于扩展是开放的,对于更改是封闭的;
依赖倒转原则
高层模块不应该依赖低层模块,两个都应该依赖抽象。
抽象不应该依赖细节,细节应该依赖抽象。
里氏替换原则
子类型必须能够替换掉他们的父类型。
装饰模式
动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更灵活。
代理模式
为其他对象提供一种代理以控制对这个对象的访问。
工厂模式
定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
原型模式
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
模板方法模式
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
迪米特法则
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
外观模式
为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
建造者模式(生成器模式)
将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。
抽象工厂模式
提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。
单例模式
保证一个类仅有一个实例,并提供一个访问它的全局访问点。