Java设计模式——(一):六大设计原则

  1. 单一职责原则
  2. 里氏替换原则
  3. 依赖倒置原则
  4. 接口隔离原则
  5. 迪米特法则
  6. 开闭原则

注:准备系统学习一下Java的23种开发模式,由于Java的开发模式是根据六大设计原则设计的,所以有必要认真学一下Java的六大设计原则(图片来源于网络,侵删)

单一职责原则(Single Responsibility Principle):
  定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责,应该仅有一个引起它变化的原因。
任务对象不应该承担太多的职责,保证代码的高内聚和单一性。
  优点:
  1 降低类的复杂度,简化代码
  2 提高代码的可读性,同时提高代码的可维护性和可复用性
  3 在对代码进行修改时,可以有效地降低风险,避免对其他功能进行过多的影响
  举例:
  在J2EE软件架构中的MVC模式,将系统分为Model(模型层)、View(视图表现层)、Controller(逻辑处理层),每一层都只有一个主要功能,专注的去处理擅长的事情
在这里插入图片描述
里氏替换原则(Liskov Substitution Principle):
  定义:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。
  总结:子类可以扩展父类的功能,但不能改变父类原有的功能
  理解:里氏替换原则主要是告诉我们如何正确的去使用继承
在这里插入图片描述
依赖倒置原则(Dependence Inversion Principle):
  定义:
  高层模块不应该依赖底层模型,两者都依赖其抽象
  抽象不依赖细节
  细节应该依赖抽象
  理解:
  希望我们去面向接口编程
  模块与模块之间依赖于接口而不依赖于实现类(模块—接口——模块)
  接口不依赖于实现类,接口应该依赖于接口(接口——接口)
  同时实现类应该去依赖于接口。(实现类——接口——实现类)
  举例:spring framwork中,关于模块的设计符合依赖倒置原则,各个层级之间用接口连接
在这里插入图片描述
接口隔离原则(InterfaceSegregation Principles):
  定义:客户端不应该依赖它不需要的接口,类之间的依赖关系应该建立在最小的接口上
  理解:在设计接口的时候,应当细化接口,建立单一功能的接口,不要将接口设计的庞大臃肿,对于一个比较大的功能模块,可以考虑去设计多个接口。维持系统的灵活性和可维护性,隔离可以说是功能上的隔离
在这里插入图片描述
迪米特法则( Low of Demeter 最少只是原则)
  定义:一个对象应当对其他对象尽可能的少的了解
  个人理解:在进行类的设计时,逻辑尽量封装在类的内部,对外提供public的调用方法,对内的一些属性和方法私有化,防止信息泄漏,降低类与类之间的影响。低耦合,高内聚
在这里插入图片描述
开闭原则(Open Close Principle)
  定义:一个软件实体,如类、模块和函数应该对扩展开放,对修改关闭
  理解:当一个模块的主要功能已经开发完后,新的需求又来了,这个时候最好是扩展一些代码去实现这个需求,而不是说大刀阔斧的改之前的代码,尽量将对系统的修改做到最小,这样做有很多好处,降低了代码的耦合度,同时也就是提高了代码的可重用性和可维护性。使我们的代码更加灵活,避免冗余,提高可读性
  举例:Spring AOP 面向切面编程
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Kirito19970409/article/details/83785241