面向对象设计原则 面向对象设计原则有哪些
1.单一职责原则:一个对象应该只包含一个单一职责,该职责完全封装在一个类中。单一责任原则是实现高内聚、低耦合的准则,也是最简单但最难应用的原则,这需要设计者发现并分离类的不同责任。
2.开放封闭原则:软件实体应该对扩展开放,对修改封闭。它意味着在不修改原始代码的情况下,尽可能扩展软件实体。
3.Richter的替换原则:所有引用基类的地方必须能够透明地使用它的子类。里希特原理表明,如果在软件中一个基类对象被它的子类对象取代,程序不会产生任何错误和异常,反之亦然。应用Richter替换原则时,父类应设计为抽象类或接口,子类应继承父类或实现父类的接口,并实现父类中声明的方法。
4.依赖反转原则:高层模块不应该依赖于低层模块,但都应该依赖于抽象。抽象不应该依赖细节,细节应该依赖抽象。反转原则要求你应该为接口而不是实现编程。
5.接口隔离原则:客户端不应该依赖那些它不需要的接口。使用接口隔离原理时,需要注意控制接口的粒度,接口不能太小。如果太小,会导致系统中接口泛滥,不利于维护。接口不要太大。太大的接口会违背接口隔离的原则,灵活性差,使用不方便。
6.复合复用原则:优先考虑对象组合而不是继承,以达到复用的目的。一般来说,如果两个类之间存在Has-A关系,就应该使用组合或聚合,如果存在Is-A关系,就可以使用继承。
7.迪米特定律——又称最少知识原理:每个软件单元对其他单元只有最少的了解,而且仅限于那些与自己单元密切相关的软件单元。