开闭原则
对扩展开放(对于提供方来说),对修改关闭(对于使用方来说)。
其含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。
里氏替换原则
https://blog.csdn.net/zhengzhb/article/details/7281833
里氏替换原则通俗的来讲就是:
任何父类出现的地方,子类一定可以出现替换。
子类可以扩展父类的功能,但不能改变父类原有的功能。
引用对象尽量使用接口或抽象类,而不是实现类,这主要是实现里氏替换原则的一个要求。
它包含以下4层含义:
-
子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
-
子类中可以增加自己特有的方法。
-
当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
-
当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。
依赖倒置原则
先把需要的依赖抽象出来,然后再去根据抽象的依赖去实现细节。
面向接口编程,不要面向实现编程。
单一职责原则
一个类只负责一个功能领域中的相应职责。
接口隔离原则
使用多个专门的接口,而不使用单一的总接口。
简而言之:客户端不应该依赖它不需要的接口;类间的依赖关系应该建立在最小的接口上。
迪米特法则
-
迪米特法则又叫做最少知道原则,就是说一个对象应当对其它对象有尽可能少的了解,不要和陌生人说话。
-
强调只和朋友说话,不和陌生人说话。这里的朋友指的是:出现在成员变量,方法输入,输出参数中的类称为成员朋友类,而出现在方法体内部的类不属于朋友类。
-
迪米特法则初衷在于降低类之间的耦合。由于每个类尽量减少对其它类的依赖,因此。很容易使得系统的功能模块独立,相互之间不存在(或很少有)依赖关系。
合成复用原则
尽量使用对象组合,而不是继承来达到复用的目的。
继承的缺点:
1.继承复用破坏了类的封装性。
2.子类与父类的耦合度高。
3.它限制了复用的灵活性。
网友评论