Java设计模式七大原则

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

单一职责原则(Single Responsibility Principle)——高内聚、低耦合
定义:不要存在多于一个致使类变动的缘由。通俗的说,一个类只负责一项职责,应该仅有一个引发它变化的缘由。
适用于:模块、类、接口、方法。
优势:
下降复杂度;提升可读性,系统的可维护性;下降变动引发的风险。
建议:接口必定要作到单一职责,类的设计尽可能作到只有一个缘由引发变化。编程

开闭原则(Open Close Principle)—— 高内聚、低耦合
定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
面对新需求,对程序的改动是经过增长新代码进行的,而不是更改现有的代码。
经典的话说:过去的事已成为历史,是不可修改的,由于时光不可倒流,但如今或明天计划作什么,是能够本身决定(即扩展)的。
怎样的设计才能面对需求的改变却能够保持相对稳定,从而使得系统能够在第一个版本后不断推出新的版本呢?开放-封闭。
在发生小的变化时,就及早去想办法应对发生更大变化的可能。
等到发生变化时当即采起行动。建立抽象来隔离之后发生的同类变化。
开发人员应该对程序中频繁变化的那部分作出抽象。
拒毫不成熟的抽象和抽象自己同样重要。函数

里氏替换原则(Liskov Substitution Principle)——低耦合
定义:子类型必须可以替换掉它们的父类型。
里氏替换原则通俗的来说就是:子类能够扩展父类的功能,但不能改变父类原有的功能。
子类能够实现父类的抽象方法,但不能覆盖父类的非抽象方法。
子类中能够增长本身特有的方法。
若是不遵循里氏替换原则,代码出现问题的概率会大大的增长。设计

依赖倒置原则(Dependence Inversion Principle)
定义:高层模块不该该依赖底层模块,两者都应该依赖其抽象;抽象不该该依赖细节;细节应该依赖抽象;即针对接口编程,不要针对实现编程。
程序中全部的依赖关系都终止于抽象类或者接口,那就是面向对象的设计,反之那就是过程化的设计。
这个是开闭原则的基础。
“面向接口编程”——OOD(Object-Oriented Design,面向对象设计)的精髓之一。
在实际编程中,咱们通常须要作到以下3点:
底层模块尽可能都要有抽象类或接口,或者二者都有。
变量的声明类型尽可能是抽象类或接口。
使用继承时遵循里氏替换原则。对象

接口隔离原则(Interface Segregation Principle)——高内聚
含义:创建单一接口,尽可能细化接口,接口中的方法尽可能少。
为各个类创建专用的接口。
在程序设计中,依赖几个专用的接口要比依赖一个综合的接口更灵活。
运用接口隔离原则,必定要适度,接口设计的过大或太小都很差。
设计接口的时候,只有多花些时间去思考和筹划,才能准确地实践这一原则。继承

迪米特法则(Law Of Demeter)——松耦合
迪米特法则又叫最少知道原则,通俗的来说,就是一个类对本身依赖的类知道的越少越好。
也就是说,对于被依赖的类来讲,不管逻辑多么复杂,都尽可能地的将逻辑封装在类的内部,对外除了提供的public方法,不对外泄漏任何信息。
迪米特法则还有一个更简单的定义:只与直接的朋友通讯。
一句话总结就是:一个对象应该对其余对象保持最少的了解。接口

组合/聚合复用原则(Composition/Aggregation Reuse Principle )——松耦合
尽可能使用合成和聚合,而不是集成来达到复用的目的。
该原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新的对象经过向这些对象的委派达到复用已有功能的目的。ip

相关文章
相关标签/搜索