1. SRP 单一职责
类的设计尽量做到只有一个原因引起变化。
2. OCP开闭原则
对扩展开放,对修改关闭。
3. LSP里氏替换原则
设计模式之里氏替换原则 - lovebeauty - 博客园
子类必须实现父类的抽象方法,但不得重写(覆盖)父类的非抽象(已实现)方法。
子类中可以增加自己特有的方法。
当子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。
3. ISP接口隔离
使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
减少接口的空实现。
4.c
依赖倒置原则(Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。
一般情况下抽象的变化概率很小,让用户程序依赖于抽象,实现的细节也依赖于抽象。即使实现细节不断变动,只要抽象不变,客户程序就不需要变化。这大大降低了客户程序与实现细节的耦合度。
依赖是什么?a依赖b可以理解为class a中,存在class b的实例化。
依赖倒置是什么?上层模块和下层模块共同依赖一个抽象的接口。上层实例化,下层实现。
目的:解耦
控制反转IOC:程序本身不负责依赖对象的创建和维护,而是把它交给外部容器来负责。控制权反转给外部ioc容器。
依赖注入DI:IOC的实现方式。