设计模式六大原则
1、单一职责原则(Single Responsibility Principle,SRP)
- 定义: 一个类应该有且仅有一个引起它变化的原因,也就是说一个类应该只负责一项职责。
- 示例: 以一个用户管理系统为例,用户信息的存储和用户信息的显示应该由不同的类来负责。如果将这两个职责都放在一个类中,那么当存储方式发生变化或者显示方式需要调整时,这个类就需要进行修改,这就违反了单一职责原则。
2、开闭原则(Open - Closed Principle,OCP)
- 定义: 软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。即当软件需要进行功能扩展时,应该通过增加新的代码来实现,而不是修改已有的代码。
- 示例: 在一个图形绘制系统中,已经有了绘制圆形、矩形的功能。当需要增加绘制三角形的功能时,应该新增一个绘制三角形的类,而不是在原来绘制图形的类中添加绘制三角形的代码。
3、里氏替换原则(Liskov Substitution Principle,LSP)
- 定义: 所有引用基类的地方必须能透明地使用其子类的对象。也就是说,子类对象必须能够替换掉它们的基类对象,而程序的行为不会因此发生改变。
- 示例: 如果有一个基类 “鸟”,有一个子类 “鸵鸟”。由于鸵鸟是鸟的一种,所以在任何需要鸟的地方,理论上都应该可以用鸵鸟来替换。但如果鸟有一个 “飞”
的方法,而鸵鸟不能飞,那么在使用鸵鸟替换鸟时就会出现问题,这就违反