设计模式--结构型设计模式(Structural)

1 外观模式

    简单来说,外观模式是 简化系统与系统之间的耦合,对外提供一个统一的入口去执行不同的业务。

2   装饰者模式(Decorator)

  简单来说,就是不改变原来对象的情况下, 将功能附加到对象上( 场景: 有一个coffee接口, 有一个实现类coffee, 如果需要加一份牛奶的话, 就调用牛奶装饰器, 如果需要加糖的话, 就调用加糖的装饰器, 最终可以展示coffee中加了哪些东西, 加完之后的价格是多少)

  • 扩展一个类的功能或给一个类添加附加职责
  • 动态的给一个对象添加功能, 这些功能可以再动态的撤销

 3 适配器模式(Adapter)

  简单来说就是 随着系统的迭代,原来的接口有可能不适用现在的业务,又想兼容原来的接口。

4 享元模式(Flyweight)

  • 减少对象的创建, 降低内存中对象的数量, 降低系统的内存, 提高效率
  • 减少内存之外的其他资源占用

     

     

     5   组合模式(Composite)

     将对象组合成树形结构以表示"部分-整体"的层次结构(对单个对象和组合对象保持一致的方式处理)

  •  

     7 桥接模式(Bridge)

     简单来说就是  一个类存在两个或者多个维度的变化的情况下, 且这两个或多个维度都需要独立进行扩展(不希望多继承,因为多继承会使类的个数急剧增加)

  • 7 代理模式(Proxy)

  • 简单来说就是 为其他对象提供一种代理, 以控制对这个对象的访问,代理对象在客户端和目标对象之间起到中介的作用
  •  

  • 代理模式 适配器模式  外观模式 的区别: 

  • 代理模式和适配器模式应该说很相像,但是他们的区别也很明显,

  • 1 代理模式和被代理者的接口是同一个,只是使用中客户访问不到被代理者,所以利用代理间接的访问,

  • 2  适配器模式,是因为接口不同,为了让用户使用到统一的接口,把原先的对象通过适配器让用户统一的使用,大多数运用在代码维护的后期,或者借用第三方库的情况下 ,

  • 3 外观模式,是大家经常无意中使用的,就是把错综复杂的子系统关系封装起来,然后提供一个简单的接口给客户使用,就类似于一个转接口,可以想象成一个漏斗,中间细的那一段,越细耦合度越低,外观模式就是为了降低耦合度。

原文地址:https://www.cnblogs.com/lsy26821/p/13937475.html