面向对象编程的六大原则?
面向对象编程的六大原则?
开-闭原则(政治家,只开放不改革):对修改关闭,对扩展开放。
注:目测为黑社会大哥属性,其他小弟都要围着它转;它更像是其他五个原则的总纲,前五个原则就是围着它转的,只要我们尽量的遵守前五个原则,那么设计出来的系统应该就比较符合开闭原则了,相反,如果你违背了太多,那么你的系统或许也不太遵循开闭原则。
单一原则(大工匠,做事专一):每个类都只负责单一的功能,并尽量把这一个功能做到极致!
依赖倒置原则(艺术家,爱抽象派):高层模块不该依赖于低层模块,二者都应该依赖于抽象,抽象不应该依赖于细节,细节应该依赖于抽象。
接口最小化原则/接口隔离原则(大龄剩女,挑三拣四):强调的是一个接口拥有的行为应该尽可能的小。
注:最小接口原则一般我们是要尽量满足的,如果实在有多余的方法,这时候就轮到缺省适配器上场了。
里氏替换原则(大孝子,父命不敢违):一个子类应该可以替换掉父类并且可以正常工作。隐含说,子类一般不该重写父类的方法, 防止子类不能实现和父类一样的功能;
注:很多情况下,我们不必太理会它,比如模板方法模式,缺省适配器,装饰器模式等一些设计模式,就完全不搭理它。
迪米特原则/最小知道原则(奇葩少年,梦想是患上自闭症):一个类应当不要让外部的类知道自己太多,也不要知道外部类太多;(高内聚,低耦合)