程序开发不仅要知道设计模式还要知道设计的原则,尽最大能力按照原则设计开发,对于代码review或者修改后期项目以及项目交接都会很方便。
有且仅有一个原因引起类的变更。
优点:
所有引用基类的地方必须能透明使用其子类的对象。只要父类能出现的地方,子类就可以出现,而且替换子类也不会产生错误。
继承的优点:
继承的缺点:
高层模块不应该依赖底层模块,两者都应该依赖其抽象,抽象不应该依赖细节,细节应该依赖抽象。
模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系通过接口或抽象类产生的。接口或抽象类不依赖于实现类,实现类依赖接口或抽象类。
客户端不应依赖它不需要的接口,对接口进行细化;类建的依赖关系应该建立在最小的接口上。建立单一接口,不要建立臃肿庞大的接口。而且要满足单一职责原则。
也称最少知识原则:一个对象应该对其他对象有最少的了解。一个类应该对自己需要耦合或调用的类知道的最少。
只和直接的朋友通信:每个对象都必然与其他对象有耦合关系,两个对象间的耦合就成为朋友关系。
迪米特法则的核心观念就是类间的解耦,弱耦合。其实就是面向对象编程。
一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。开闭原则可以提高复用性,提高维护性。
抽象约束:通过接口或者抽象类可以约束一组可能变化的行为,并且能够实现对扩展开放。
1.通过接口或者抽象类约束扩展,对扩展进行边界限定,不允许出现在接口或者抽象类中不存在的public方法。
2.参数类型、引用对象尽量使用接口或者抽象类,而不是实现类。
3.抽象层尽量保持稳定,一旦确定即不允许修改。
六大设计原则主要是Java面向对象编程设计的原则,降低项目耦合,分清职责。方便开发和继续维护。