记录一下我自己对于这六大原则的简单理解
单一职责原则
只有一个导致类变化的原因:
一个类只负责一个职责。比如学生就负责读书,其他的(吃饭喝水等)都不要。
开放封闭原则
软件实体(类、模块、函数等)应该对对扩展开放,对修改封闭:
应该能够通过扩展类的行为来增强功能,而不是修改现有的代码。
里氏替换原则
所有引用基类的地方必须能够透明地使用其子类的对象:
使用子类代替父类时,软件还可以正常运行。也就是子类可以接收的参数作用域更大,接口会更多。且没有更改父类的接口。
依赖倒置原则
高层模块不应该依赖于低层模块,二者都应该依赖于抽象:
即面向接口编程,底层模块(比如
笔
)要有一个抽象的接口作为父类,然后使用不同的子类去继承这个接口。
高层模块(比如人
)是使用抽象接口进行编程的,这样根据里氏替换原则,调用人
用笔
写字的时候就可以表现出使用的笔的不同。
接口隔离原则
客户端不应该依赖它不需要的接口:
不必将所有接口放到一起,而是将不同功能的接口拆开。
迪米特原则
一个对象应该对其他对象有最少的了解(这也是面向设计的核心原则:低耦合,高内聚):
一个对象中要尽可能少包含其他的对象。
具体的可以查看以下参考: