单一职责原则
应该有且仅有一个原因引起类的变更,一个类只负责一个功能领域中的相应职责。
里氏替换原则
只要父类能出现的地方,子类就可以出现,而且替换为子类也不会产生任何错误或异常,但是不能够反过来。
依赖倒置原则
- 高层模块不应该依赖底层模块,两者都应该依赖其抽象。
- 抽象不应该依赖细节。
- 细节应该依赖抽象。
不可分割的原子逻辑就是底层模块,原子逻辑的再组装就是高层模块。感觉就是面向接口编程。
接口隔离原则
建立单一接口,不要建立臃肿庞大的接口。即接口尽量细化,同时接口中的方法尽量少。
迪米特法则
一个对象应该对其他对象有最少的了解。就个人理解,就是说对象A只需要知道对象B有方法C,直接调用对象B的方法C即可,不关系对象B的方法C是如何实现的。
开闭原则
一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。