美文网首页
三种设计模式的三种禅语

三种设计模式的三种禅语

作者: 搬砖的小学生 | 来源:发表于2017-11-30 20:45 被阅读0次

设计模式以前讲过很多次,但是仔细思考一下,你会发现每一种模式之间存在着微妙差异。今天要讲的是装饰者模式、适配器模式和外观模式的异同。同样是中转站,但是它们分别赋予了三种不同的禅意:责任、变化、做减法。

装饰者模式:责任

装饰者模式动态地将责任附加到目标对象上。它的降临就是要赋予目标对象新的能量。 如图是Java的Input流继承图:

InputStream是输入流,而它的子类FileInputStream是文件输入流。FilterInputStream就是一个装饰者类,通过继承它,可以给文件输入流加上特异功能。比如BufferedInputStream可以使其组装成一个带缓冲区的文件输入流。

“责任“强调的是在原有基础上的附加。

适配器模式:变化

适配器模式将一个类的接口,转换成客户期望的另一个接口。它的意义在于,让不兼容某个接口的类可以完美使用该接口。如图是InputStream和Reader的关系图:

Reader家族是要使用字符输入流的,而InputStream是字节输入流,但我又要用你,所以就用InputSreamReader做一个适配,把你转成字符输入的流。

所以,这种转换就强调的是“变化“,变化之后的你,已经不是原来那个你了。

外观模式:做减法

外观模式提供了统一的接口,用来访问子系统中的一群接口。它让你从繁琐的子系统中解耦出来,一步到位:

外观模式也广泛应用于各种架构设计中。比如下面是我之前讲ServletContext和Tomcat容器时提到的一个关系图,在大的系统架构中,经常需要用一个Façade来提取繁琐的子系统逻辑,使得功能调用方便快捷。

Less is more。外观模式,简单而深奥。


更多内容微信扫描关注本人订阅号:

相关文章

  • 三种设计模式的三种禅语

    设计模式以前讲过很多次,但是仔细思考一下,你会发现每一种模式之间存在着微妙差异。今天要讲的是装饰者模式、适配器模式...

  • 设计模式 总纲

    常用的设计模式有二十三种,除此之外,又不断发展出新的设计模式,我先总结一下常用的这二十三种。 一,设计模式的分类 ...

  • 3.简单工厂模式

    在设计模式中,工厂模式有三种形式:简单工厂模式、工厂方法模式、抽象工厂模式。三种形式核心的角色都是工厂类。 简单工...

  • 状态模式,命令模式和策略模式的区别

    设计模式中有三个模式State, Command, Strategy,这三种设计模式都是行为型设计模式,在结构上又...

  • JavaScript - 设计模式 - 命名空间

    本小节主要讲解三种常用的设计模式和命名空间,第一种是工厂模式,第二种是单利模式,第三种是观察者模式 设计模式概述 ...

  • 日更19——《住区设计》读书笔记(3)

    从阅读《住区设计》一书中提取住区设计的三种设计模式,从中思考住区的建设方式。书中的住区三种模式主要是基于住区的社会...

  • 日更18——《住区设计》读书笔记(2)

    从阅读《住区设计》一书中提取住区设计的三种设计模式,从中思考住区的建设方式。书中的住区三种模式主要是基于住区的社会...

  • 日更17——《住区设计》读书笔记(1)

    从阅读《住区设计》一书中提取住区设计的三种设计模式,从中思考住区的建设方式。书中的住区三种模式主要是基于住区的社会...

  • Vi和Vim

    三种模式 三种模式的切换

  • 设计模式的原则及UML类图

    设计模式类型 设计模式分为三种类型: 创建型模式 结构型模式 行为型模式 设计原则 软件开发的23种设计模式,就是...

网友评论

      本文标题:三种设计模式的三种禅语

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