软件的可维护性和可复用性是两个非常重要的用于衡量软件质量的属性,软件的可维护性是指软件能被被理解、改正、适应及扩展的难易程度,软件的可复用性是指软件能够被重复使用的难易程度。
面向对象设计的目标之一在于支持可维护性复用,一方面需要实现设计方案或者源代码的复用,另一方面要确保系统能够易于扩展和修改,具有良好的可维护性。面向对象设计原则在于支持可维护性复用而诞生,这些原则蕴含在很多设计模式中,它们是从许多设计方案中总结出的指导性原则,但并不是强制的。
最常见的7个面向对象设计原则:
1,单一职责原则:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。
2,开闭原则:软件实体应当对扩展开发,对修改关闭。
3,里氏代换原则:所有引用基类的地方必须能够透明地使用其子类的对象。
4,依赖倒转原则:高层模块不应该依赖底层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。
5,接口隔离原则:客户端不应该依赖那些它不需要的接口。
6,合成复用原则:优先使用对象组合,而不是通过继承来达到复用的目的。
7,迪米特法则:每一个软件单位对其他单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。
面向对象设计原则也是后续设计模式学习的基础,每一个设计模式都符合一个或多个面向对象设计原则,面向对象设计原则是用于评价一个设计模式的使用效果的重要指标之一。
【参考文献】:
本文是根据刘伟的《Java设计模式》一书的学习笔记,仅供学习用途,勿做其他用途,请尊重知识产权。
【本文代码仓库】:https://gitee.com/xiongbomy/java-design-pattern.git