美文网首页
设计模式之一——概述

设计模式之一——概述

作者: dd299 | 来源:发表于2019-06-05 08:12 被阅读0次

原文传送门

设计模式(Design Patterns)——可复用面向对象软件的基础

模式,是在某情境(context)之下,针对某问题的某种解决方案。

设计模式是解决一个经常重复发生的设计问题。

一个好的软件设计,在系统的可维护性和可复用性两方面都有不错的表现。能够提高系统可维护性的同时,提高可复用性的指导原则,称为设计原则。下面简单介绍了六大设计原则。所谓设计模式就是对这些设计原则在具体场景下的设计方案。

本文的目的是概述六大设计原则以及经典的几大类设计模式,具体详述会另行整理,写作计划是,每完成一个主题,就会将本文中预留超链补全。也是对自己的一种督促。

一、设计模式的分类

设计模式主要分为创建型模式、结构型模式、行为型模式三种类型。

创建型模式,共5种:工厂方法模式抽象工厂模式单例模式建造者模式原型模式

结构型模式,共7种:适配器模式装饰器模式代理模式外观模式桥接模式组合模式享元模式

行为型模式,共11种:策略模式模板方法模式观察者模式迭代子模式责任链模式命令模式备忘录模式状态模式访问者模式中介者模式解释器模式

还有两类:并发型模式和线程池模式。没有归类到23种设计模式之中。
今后的文章中,我将一一介绍Java中23种设计模式的常用场景。

二、设计模式的六大原则

1 开闭原则(Open Close Principle)

所谓开闭原则(OCP),指的是一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
这个原则说的是,在设计一个模块时,应该是这个模块在不被修改的前提下被扩展。

详细介绍见《开闭原则详述》

2 里氏代换原则(Liskov Substitution Principle)

里氏代换原则(LSP)指的是,一个软件实体如果是用的是一个基类的话,那么一定适用于其子类,而且它根本不能察觉出基类对象和子类对象的区别。
LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。

详细介绍见《里氏替换原则详述》

3 依赖倒转原则(Dependence Inversion Principle)

依赖倒转原则(DIP)要求客户端依赖于抽象耦合,表述是:
抽象不应当依赖于细节;细节应当依赖抽象。
另一种表述是:
要针对接口编程,不要针对实现编程。

如果设计师希望遵守OCP,那么DIP便是达到要求的途径。

详细介绍见《依赖倒转原则详述》

4 接口隔离原则(Interface Segregation Principle)

接口隔离原则(ISP)讲的是:使用多个专门的接口,比使用单一的总接口要好。
从客户类的角度来讲:一个类对另外一个类的依赖性应该是建立在最小的接口上的。

详细介绍见《接口隔离原则详述》

5 迪米特法则(最少知识原则)(Law of Demeter )

迪米特法则(LOP)又叫最少知识原则(Least Knowledge Principle,LKP),就是说,一个对象应当对其他对象有尽可能少的了解。
详细介绍见《迪米特法则详述》

6 合成复用原则(Composite Reuse Principle)

CRP就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。
要尽量使用合成/聚合的方式,而不是使用继承。

详细介绍见《合成复用原则详述》

总结

设计模式本身并不能保证一个系统的可复用性和可维护性,但设计思想可以指引我们持续改进。一个好的设计,不会在投入之后再进行大量修改。这简单的目标恰恰是让我们可以持续精进的驱动力。


参考书籍:
1.《Java与模式》,电子工业出版社,阎宏
2.《Head First 设计模式(中文版)》,中国电力出版社

相关文章

  • 单例模式

    概述 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创...

  • 设计模式之一——概述

    原文传送门 设计模式(Design Patterns)——可复用面向对象软件的基础 模式,是在某情境(contex...

  • 设计模式之备忘录(Memento)

    概述 备忘录模式(Memento Pattern),是行为型模式设计模式之一,该模式用于保存对象当前状态,并且在之...

  • 23种常用设计模式

    基础知识 设计模式概述 从招式与内功谈起——设计模式概述(一):设计模式从何而来? 从招式与内功谈起——设计模式概...

  • 23种常用设计模式

    基础知识 设计模式概述 从招式与内功谈起——设计模式概述(一):设计模式从何而来? 从招式与内功谈起——设计模式概...

  • 23种常用设计模式

    基础知识 设计模式概述 从招式与内功谈起——设计模式概述(一):设计模式从何而来? 从招式与内功谈起——设计模式概...

  • 设计模式——工厂模式

    一.概述 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一,其通过提供对象创建工厂,...

  • 设计模式

    《C#设计模式》 《C#设计模式》-设计模式概述 《C#设计模式》-面向对象设计原则 《C#设计模式》-单例模式 ...

  • 23种设计模式及案例,你看我就完事了。

    目录介绍:一 、设计模式概述:1.1 从招式与内功谈起——设计模式概述(一)[https://www.jiansh...

  • 设计模式系列——单例模式

    单例概述 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。它涉及到一个单一的类...

网友评论

      本文标题:设计模式之一——概述

      本文链接:https://www.haomeiwen.com/subject/dsgdxctx.html