15.结构型模式总结

【目的】

         Adapter: 重新包装已有的类,进行接口转换(通过对象组合,复用已有的类)

         Bridge:  将“实现”封装到组合类中,分离“抽象”与“实现”(通过类继承,可以沿着两个方向变化)

         Composite: 让集合类实现基本类的行为,使集合对象和单个对象的使用具有一致性  

         Decorator: 通过重写指定对象的行为,增加它的职责,即动态的给一个对象增加额外职责

         Facade: 封装要使用到的子系统中的部分功能,向Client提供一个一致界面,使子系统更容易被使用

         Flyweight: 单独对待重复出现次数很多的对象,封装该类的创建过程,使同一对象在内存中只有一个,通过共享减少内存消耗

         Proxy: 通过增加一个中间层,为其它对象提供一种代理,以控制对这个对象的访问

 

【相似点和不同点】

         1. 都用到了“对象组合”的方式,目的是使用 已有的类和对象 构建 新的类

         2. Facade, Proxy 在架构的高度使用

         3. Flyweight 考虑程序的效率问题

         4. Composite 考虑让集合方便使用

         5. 从微观上看:Adapter 使用“对象组合”,Bridge 在前者的基础上使用“组合类抽象”(使组合对象可变化),Decorator 在前者的基础上使用“类继承”(使组合可以递归)

         6. 从宏观上看:Adapter 注重“接口转换”,Brigde 注重“抽象”和“实现”分离,Decorator 注重“动态递归”的增加对象的职责(新行为=对象行为+新职责)

 

【核心】

         “对象组合”的使用:对象具有类的所以行为,将对象组合到新的类中,就拥有了原来类的所有行为;原有行为+固定算法=新的行为,就构造出新的类;侧重于“新的行为”的是Adapter,侧重于“原有行为变化”的是Bridge,侧重于“固定算法变化”的是Decorator

 

【优点】

         复用已有的类,根据不同的目的,用最简单的方式实现功能扩展。

         充分体现了面向对象的“开闭原则”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值