某一些特定的环境,解决特定的问题
先做一个设计,需求改了,尽量不要改源代码,可以扩展功能
子类继承父类,可以继承功能,尽量不要重写
高层不要依赖底层,抽象不要依赖具体,翻转过来
一个类做一个类的事情,不同的功能和职责拆开
将庞大的接口拆分开,一种单一职责的体现,单一职责更注重细节,接口隔离更注重约束
尽量与自己交流,不要和陌生人说话,两个对象没有必要联系,不要交流,通过第三方完成
尽量使用组合关系,之后在考虑继承关系,装饰者模式->使用对象的组合扩展
简单工厂模式不算是23种模式中的一种
单例模式
工厂方法模式 ; 抽象工厂模式 ; 建造者模式 ; 原型模式;
适配器; 装饰者; 代理模式(静态,动态);
外观模式; 桥接模式; 组合模式; 享元模式;
策略模式; 模板(方法)模式 ; 观察者模式; 责任链模式
迭代器模式 ; 命令模式; 备忘录模式;
状态模式 ; 访问者模式; 中介者模式; 解析器模式;