设计模式是一套被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结。
根据设计模式的参考书 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素) 中所提到的,总共有 23 种设计模式。这些模式可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns)。
开闭原则
对扩展开放,对修改关闭。我们的一个系统开发好了后,不应该修改已经能运行的代码,因为这样可能改出问题,而应该对其进行扩展。
依赖倒置原则
高层模块不应该依赖低层模块(高层模块就是我们先调用的类A调用B类,A就是高层模块),它们都应该依赖抽象(这样和低层模块就不耦合了)。
要针对接口编程,不要针对实现编程。
里氏替换原则
是实现开闭原则的重要方式之一。子类型必须能替换父类型。
单一职责原则
一个对象应该只包含单一的职责。
就一个类而言,应该仅有一个引起它变化的原因。
接口隔离原则
一旦一个接口太大,则需要将他分割成一些更细小的接口。
合成复用原则
尽量使用对象组合(关联),而不是继承来达到复用的目的。
迪米特法则
类最少知道原则,一个软件实体应当尽可能少的和其他实体类发生作用(外观模式)