设计模式学习笔记(一)
欢迎移步博主小站:白亮吖雅黑丫の小站
- 软件的可维护性和可复用性是两个非常重要的用于衡量软件质量的质量属性,软件的可维护性是指软件能够被理解、改正、适应以及扩展的难易程度,软件的可复用性是指软件能够别重复使用的难易程度。由于早期开发软件并没有同一的格式,导致后期维护起来比较困难,随着软件工程的发展,软件的可维护性和可复用性成为了软件质量的重要属性。于是出现具有代表性的23种设计模式和7个常用的面向对象设计原则。
- 下面我们将对7大常用的面向设计原则进行讲解学习
单一职责原则
- 单一职责原则是最简单的面向对象设计原则,用于控制类的粒度大小
- 重构后的类图
开闭原则
开闭原则:对外扩展开放,对内修改关闭。是指软件实体应尽量在不修改原有代码的情况下进行扩展,抽象化是开闭原则的关键。
里氏代换原则
- 所有引用基类对象的地方必须能透明地使用其子类,里氏代换原则表明,在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立。
依赖倒置原则
-
高层模块不应依赖于低层模块,它们都应依赖于抽象,抽象不应该依赖于细节,细节应该依赖于抽象。
-
要求:针对接口编程,不要针对实现编程。
-
重构后的类图
上述重构过程中,同时使用了开闭原则、里氏代换原则和依赖倒置原则。在大多数情况下,这3个原则会同时出现,开闭原则是目标,里氏代换原则是基础,依赖倒置是手段。
接口隔离原则
- 客户端不因依赖于那些它不需要的接口
合成复用原则
- 优先使用对象组合,而不是继承来达到复用的目的
迪米特法则
- 一句话总结:越少越好!!!
- 此处应改成中介者模式(略)
参考文献
刘伟,胡志刚. C#设计模式(第2版)[M]. 清华大学出版社.