设计模式——结构型

    结构型模式,顾名思义讨论的是类和对象的结构,它采用继承机制来组合接口或实现(类结构型模式),

或者通过组合一些对象,从而实现新的功能(对象结构型模式)。

 

常见的结构型模式有七种:

  • Adapter适配器模式
  • Composite组合模式
  • Facade外观模式
  • Decorator装饰模式
  • Bridge桥接模式
  • Flyweight享元模式
  • Proxy代理模式。

 

我们首先整体了解一下七种模式:

设计模式——结构型_第1张图片

Adapter适配器模式

设计模式——结构型_第2张图片

解决的问题:新环境要求的接口是现存对象所不满足的,此时我们可以通过添加一层Adapter对现有的对象加入

一些接口,使其适应新的应用环境。

 

举例:笔记本电源适配器

 

Composite组合模式

设计模式——结构型_第3张图片

解决的问题:

         解决客户程序与复杂对象容器的解耦,一类具有“容器特征”的对象——即他们在充当对象的同时,又是其他对象的容器的情况,通过继承统一的接口,我们可以将容器对象及其子对象看成同一类对象使用,以减少

对象使用中的复杂度。

 

举例:公司分支管理

 

Facade外观模式

设计模式——结构型_第4张图片

解决的问题:

简化接口,将客户程序对子对象的调用与子对象的变化分离。

 

举例:10086查询

 

Decorator装饰模式

设计模式——结构型_第5张图片

解决的问题:

        在稳定接口的前提下为对象扩展功能,主要是解决用继承的方式为对象扩展大量功能而造成的子对象数量膨胀的问题

 

举例:一幅画,可以直接挂到墙上,也可以加上框架和镶上玻璃后,再挂到墙上。

 

Bridge桥接模式

设计模式——结构型_第6张图片

解决的问题:

      分离接口(抽象)与其实现,当某个类型具有两个或两个以上的变化点,通过以继承接口的方式隔离变化,以减少因变化带来的代码的修改量。

 

举例:电灯开关

 

Flyweight享元模式

设计模式——结构型_第7张图片

解决的问题:主要是解决由于相同对象数量过大而造成系统内存开销过大的问题。

 

举例:同时设计不同类的网站。

 

Proxy代理模式

设计模式——结构型_第8张图片

解决的问题:解决直接访问某些对象是出现的问题

举例:中介公司

你可能感兴趣的:(设计模式)