设计模式六大原则
1.单一职责原则 Single Responsibility Principle
原则:一个接口或类只有一个原因引起变化,也就是一个接口或类只有一个职责,它就负责一件事情。
2.里氏替换原则
继承
优点:
1.代码共享 2.提高代码的重用性 3.提高代码的可扩展性 4.提高项目的开放性
缺点:
1.继承是侵入性的。只要继承,就必须拥有父类的所有属性和方法;
2.降低代码的灵活性。子类必须拥有父类的属性和方法。
3.增强了耦合性。当父类的常量、变量和方法被修改时,需要考虑子类的修改。
原则:只要父类能出现的地方子类就能出现,而且替换为子类也不会产生任何的错误或异常,使用着可能根本就不需要知道是父类还是子类,但是反过来就不行。
3.依赖倒置原则
原则:
1.高层模块不应该依赖低层模块,两者都应该依赖其抽象
2.抽象不应该依赖细节;
3.细节应该依赖抽象
在Java中的表现:“面向接口编程”
1.模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系就是通过接口或抽象类产生的;
2.接口或抽象类不依赖于实现类
3.实现类依赖接口或抽象类;
优点:
采用依赖倒置原则可以减少类间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提高代码的可读性和可维护性。
依赖的三种写法
1.构造函数传递依赖对象
2.setter方法传递依赖对象
3.接口声明依赖对象
ps:Spring的注入方式有几种?
4.接口隔离原则
原则:建立单一接口(接口尽量细化)
1.客户端不应该依赖它不需要的接口
2.类间的依赖关系应该建立在最小的接口上
ps:与单一原则的区别?
单一原则要求的是类和接口职责单一,注重的是职责,逻辑上的划分。
而接口隔离原则要求的是接口的方法尽量少。
5.迪米特法则
也称为最少知识原则
原则:一个对象应该对其他对象有最少的了解。 一个类应该对自己需要耦合或者调用的类知道的最少
6.开闭原则
原则:软件实体应该对扩展开放,对修改关闭。其含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。