1、开闭原则(Open Close Principle)
开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类。
2、里氏代换原则(Liskov Substitution Principle)
子类可以扩展父类的功能,但不能改变原有父类的功能,目的:增强程序的健壮性,在实际项目中,每个子类对应不同的业务实现,用父类作为参数,传递不同的子类完成不同的业务逻辑。
3、依赖倒转原则(Dependence Inversion Principle)
上层模块不应该依赖下层模块,两者应依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象;通俗点就是说变量或者传参数,尽量使用抽象类,或者接口,而不是直接使用它的实现类。
4、接口隔离原则(Interface Segregation Principle)
这个原则的意思是:复杂的接口,根据业务拆分成多个简单接口,使用多个隔离的接口,比使用单个接口要好。它还有另外一个意思是:降低类之间的耦合度。由此可见,其实设计模式就是从大型软件架构出发、便于升级和维护的软件设计思想,它强调降低依赖,降低耦合,接口的设计粒度越小,系统越灵活,但是灵活的同时结构复杂性提高,开发难度也会变大,维护性降低。
5、迪米特法则,又称最少知道原则(Demeter Principle)
最少知道原则是指:一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。最少知道原则,尽量降低类与类之间的耦合,一个对象应该对其他对象有最少的了解,这个可能不太好理解简单说明一下,比如我们A类和B类里面有不同的集合,B类的某个方法直接获取A类里面的集合做了业务处理,这样就违背了迪米特法则,如果B类需要使用A类的集合做业务处理应该由A类自己提供方法,B类直接调用A类提供的方法即可。
6、单一原则(Single Responsibility Principle)
一个类或者一个方法只负责一项职责,尽量做到类的只有一个行为原因引起变化;
