1、单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。
2、开放-封闭原则:软件实体(类、模块、函数等等)应该可以扩展的,但是不可修改。即对扩展是开放的,对修改是封闭的。
3、依赖倒转原则:高层模块不应该依赖底层模块,两个都应该依赖抽象,抽象不应该依赖细节,细节应该依赖抽象。
说明:就是针对接口编程,而不是针对实现编程,高层模块和底层模块之间通过接口相连接,即使高层模块或底层模块发生了变化,只要接口不变就不会影响到其他模块,降低耦合度,依赖倒置原则可以说是面向对象设计的标志,用哪种语言编写程序不重要,如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象的设计,反之就只是过程化的设计了。
4、里氏代换原则:子类型必须能够替换它们的父类型。
5、合成/聚合复用原则:能用合成关系实现的就不用继承关系实现,聚合用来表示“拥有”关系或者整体与部分的关系。而合成是一种表示强的多的“拥有”关系.
6、接口隔离原则:接口的设计应该尽可能的小,每个接口都应该是一个角色,不可以不同角色的接口合并成一个接口。
7、迪米特法则:又叫最小知识原则,降低类、模块内部成员的访问权限,减少内部细节和外部的联系。
迪米特法则所谈论的就是对对象之间的信息量、流线以及信息的影响的控制。在软件系统当中,一个模块设计的好不好的最主要也是最重要的标识就是该模块在 多大程度上将自己的内部数据和其他有关的细节隐蔽起来。
- 在类的划分上应当创建有弱耦合的类
- 在类的设计结构上,每一个类都应当尽量降低成员的访问权限,一个类不应当public自己的属性而应该提供取值和赋值的方法。
- 在类的设计上,只要有可能就应当设置成不变类。
- 在对其他类的引用上,一个对象对其他对象的引用应当降到最低。
浙公网安备 33010602011771号