分享程序网
首页
  • java
微服务
微前端
环境搭建
数据库
设计模式
算法
软件
解决问题
链接
首页
  • java
微服务
微前端
环境搭建
数据库
设计模式
算法
软件
解决问题
链接
  • 创建模式

    • 单例模式
    • 工厂方法模式
    • 抽象工厂模式
    • 原型模式
    • 建造者模式
  • 结构模式

    • 适配器模式
    • 桥接模式
    • 组合模式
    • 装饰器模式
    • 门面模式
    • 享元模式
    • 代理模式
  • 行为模式

    • 责任链模式
    • 命令模式
    • 迭代器模式
    • 策略模式
    • 模板方法模式

设计模式

单一职责原则

单一职责原则的英文名称是Single Responsibility Principle,简称是SRP。定义为应该有且仅有一个原因引起类的变更。

里氏替换原则

里氏替换原则(Liskov Substitution Principle,LSP),**所有引用基类的地方必须能透明地使用其子类的对象。**通俗点讲,只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常,使用者可能根本就不需要知道是父类还是子类。但是,反过来就不行了,有子类出现的地方,父类未必就能适应。

依赖倒置原则

依赖倒置原则(Dependence Inversion Principle,DIP)含义:

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

依赖倒置原则在Java语言中的表现就是:

  • 模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的;
  • 接口或抽象类不依赖于实现类;
  • 实现类依赖接口或抽象类。

更加精简的定义就是“面向接口编程”——OOD(Object-Oriented Design,面向对象设计)的精髓之一。

接口隔离原则

接口隔离原则(Interface Segregation Principle,ISP)包含以下4层含义:

  • 接口要尽量小;
  • 接口要高内聚;
  • 定制服务;
  • 接口设计是有限度的。

在实践中可以根据以下几个规则来衡量:

  • 一个接口只服务于一个子模块或业务逻辑;
  • 通过业务逻辑压缩接口中的public方法,尽量细化接口,接口中的方法尽量少;
  • 已经被污染了的接口,尽量去修改,若变更的风险较大,则采用适配器模式进行转化处理;
  • 了解环境,拒绝盲从。每个项目或产品都有特定的环境因素,环境不同,接口拆分的标准就不同。

迪米特法则

迪米特法则(Law of Demeter,LoD)也称为最少知识原则(Least Knowledge Principle,LKP),虽然名字不同,但描述的是同一个规则:一个对象应该对其他对象有最少的了解。通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少,尽量降低类与类之间的耦合。

开闭原则

开闭原则(Open-Closed Principle,OCP)其含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。

合成复用原则

合成复用原则(Composite/Aggregate Reuse Principle,CARP)指尽量使用对象组合的方式实现代码复用,而不是使用继承关系达到代码复用的目的。

创建型设计模式

  • 简单工厂模式
  • 工厂方法模式
  • 抽象工厂模式
  • 单例模式
  • 原型模式
  • 建造者模式

结构型设计模式

  • 代理模式
  • 门面模式
  • 装饰器模式
  • 享元模式
  • 组合模式
  • 适配器模式
  • 桥接模式

行为型设计模式

  • 委派模式
  • 模板方法模式
  • 策略模式
  • 责任链模式
  • 迭代器模式
  • 命令模式
  • 状态模式
  • 备忘录模式
  • 中介者模式
  • 解释器模式
  • 观察者模式
  • 访问者模式
Last Updated:
Contributors: clcheng