小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
1. 单一职责原则:
一个类只做一件事,因为当它承担的职责越多,它被复用的可能性就越小,而一个类承担的职责越多,相当于将这些职责耦合在一起,当其中一个职责发生变化的时候会影响其他职责的运作,因此要将这些职责进行分离,将不同的职责分装在不同的类中,如果多个职责总是发生改变,则可将他们封装在同一类中。
2.开闭原则
简单一句话理解:对扩展开放,对修改关闭。 实现方法:定义一个相对稳定的抽象层,而将不同的实现行为转到实现层中完成,方便复用与扩展。
3. 里氏代换原则
所有引用基类(父类)的地方必须能 透明地使用其子类的对象。子类可以扩展父类的功能,但不能改变父类原有的功能(子类可以有自己特有的方法,但是尽量不要去重写父类方法),不然代码出问题的几率大大增加。
4. 依赖倒转原则
高层模块不应该依赖低层模块,他们都应该依赖抽象,抽象不应该依赖细节,细节应该依赖抽象(就是要求针对接口编程,而不是针对实现编程)
5.接口隔离原则
根据接口隔离原则,当一个接口太大时需要将他分割成一些更细小的接口,使用该接口的客户端仅需指导与之相关的方法即可,每一个接口承担一种相对独立的角色,不干不该干的事,该干的事都要干。
6.合成复用原则
优先使用对象组合,而不是通过继承来达到复用的目的
7.迪米特法则
每一个软件单位对其他单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。(降低单位间通信的宽带与深度)
总结:
Ø 总的理解这还是要实现高内聚低耦合,方便复用与扩展。
Ø 开闭原则是面向对象的基石。
Ø 七大原则之间并不是相互孤立的,彼此间存在着一定关联。