单一职责原则 (Single Responsibility Principle, SRP) 一个类只负责一个功能领域中的相应职责
开闭原则 (Open-Closed Principle, OCP) 软件实体应对扩展开放,而对修改关闭
里氏代换原则 (Liskov Substitution Principle, LSP) 所有引用基类对象的地方能够透明地使用其子类的对象
依赖倒转原则 (Dependence Inversion Principle, DIP) 抽象不应该依赖于细节,细节应该依赖于抽象
接口隔离原则 (Interface Segregation Principle, ISP) 使用多个专门的接口,而不使用单一的总接口
合成复用原则 (Composite Reuse Principle, CRP) 尽量使用对象组合,而不是继承来达到复用的目的
迪米特法则 (Demeter Principle, DP) 一个软件实体应当尽可能少地与其他实体发生相互作用
用抽象构建框架,用实现扩展细节需要结合:单一职责原则告诉我们实现类要职责单一;里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;接口隔离原则告诉我们在设计接口的时候要精简单一;迪米特法则告诉我们要降低耦合。而开闭原则是总纲,它告诉我们要对扩展开放,对修改关闭。
设计模式大体上分为三大类:
创建型模式(5种):单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。
结构型模式(7种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式(11种):策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。