欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JAVA设计模式之六大原则

程序员文章站 2022-06-22 20:12:29
参考资料:https://www.cnblogs.com/pony1223/p/7594803.html主要是对上面参考资料的总结和整理1.单一职责:一个类只负责一项职责。class Terrestrial{ public void breathe(String animal){ System.out.println(animal+"呼吸空气"); }}class Aquatic{ public void breathe(String animal){...

1.单一职责:

一个类只负责一项职责。

class Terrestrial{ public void breathe(String animal){ System.out.println(animal+"呼吸空气"); } } class Aquatic{ public void breathe(String animal){ System.out.println(animal+"呼吸水"); } } public class Client{ public static void main(String[] args){ Terrestrial terrestrial = new Terrestrial(); terrestrial.breathe("牛"); terrestrial.breathe("羊"); terrestrial.breathe("猪"); Aquatic aquatic = new Aquatic(); aquatic.breathe("鱼"); } } 

2.里氏替换原则:

子类可以扩展父类的功能,但不能改变父类原有的功能。

引申含义

  1. 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
  2. 子类中可以增加自己特有的方法。
  3. 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。【注意区分重载和重写】
  4. 当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

风险:如果不遵守 可能会在某些情况下忘记了子类覆盖了父类 但仍调用那个覆盖了的方法,导致程序出错

PS:可以用final的手段强制来遵循
可以阅读这里:https://blog.csdn.net/whuslei/article/details/636618了解详细情况

3.依赖倒置原则:

高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。

简单来说:依赖倒置原则的核心思想是面向接口编程

风险:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。

解决办法:将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接口I间接与类B或者类C发生联系,则会大大降低修改类A的几率。

4.接口隔离原则:

将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。

JAVA设计模式之六大原则
根据原则修改后
JAVA设计模式之六大原则

5.迪米特法则

一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的public方法,不对外泄漏任何信息。

6.开闭原则

对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,需要面向接口编程。

本文地址:https://blog.csdn.net/qq_34182649/article/details/107881628

相关标签: JAVA 设计模式