1.单一职责原则:类的职责要单一,不能将太多的职责放在一个类中。
2.开闭原则:软件实体对拓展是开放的,但对修改是关闭的,即在不修改一个软件实体的基础上去拓展其功能。
3.里氏代换原则:在系统中,一个可以接受基类对象的地方必然可以接受一个子类对象。
4.依赖倒转原则:要针对抽象层编程,而不要针对具体类编程。
5.接口隔离原则:使用多个专门的接口代替一个统一的接口。
6.合成复用原则:在系统中应该尽可能多使用组合和聚合关联关系,尽量少使用甚至不使用继承关系。
7.迪米特法则:一个软件实体对其他实体的引用越少越好,或者说两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,而是通过引入一个第三者发生间接交互。
(来源于刘伟主编的设计模式书)