2.设计模式六大原则
转载: https://www.cnblogs.com/shijingjing07/p/6227728.html
23种设计模式:
https://www.cnblogs.com/zhili/p/DesignPatternSummery.html
面向对象它真正强大的地方在于:随着业务变得越来越复杂,面向对象依然能够使得程序结构良好,而面向过程却会导致程序越来越臃肿。
让面向对象保持结构良好的秘诀就是设计模式
学习设计模式目标就是要学会面向对象的思想编程
1.设计模式的目的
设计模式的目的就是面向对象的四大好处:可维护,可扩展,可复用和灵活性好。(活字印刷术的例子)
可扩展指的是:实现新的功能时候,不修改已经现有的测试好的功能 (工程模式)
可维护指的是:可读性好
2.常用的六大设计模
1.单一职责原则
该原则是针对类来说的,即一个类应该只负责一项职责。
有时候需要违背单一原则,我的原则是:只有逻辑足够简单,才可以在代码级违反单一职责原则;只有类中方法数量足够少,才可以在方法级别违反单一职责原则。
2.里氏替换原则
子类可以替换掉父类:只有子类可以替换掉父类,软件单位功能不受到影响时,父类才能真正被复用,而子类也可以在父类的基础上新增功能
2.1 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法
public class C { public int func(int a, int b){ return a+b; } } public class C1 extends C{ @Override public int func(int a, int b) { return a-b; } } public class Client{ public static void main(String[] args) { C c = new C1(); System.out.println("2+1=" + c.func(2, 1)); } }
2.2 子类可以有自己的个性
public class C { public int func(int a, int b){ return a+b; } } public class C1 extends C{ public int func2(int a, int b) { return a-b; } } public class Client{ public static void main(String[] args) { C1 c = new C1(); System.out.println("2-1=" + c.func2(2, 1)); } }
3. 开放封闭原则
对扩展开放,对更改封闭
4.依赖倒置原则
就是针对接口编程,电脑里面的各个插排就像是接口编程的,不关心具体的硬件内部细节,只提供了对外的接口