设计模式 (14) - 结构型模式总结

结构型模式关注于“如何组织对象”形成一个合理的对象结构。我们知道对象都具有属性和方法:

  • Flyweight/享元模式优化属性的定义来节约内存开销。享元模式把属性分解为“内在属性”和“外部属性”。“内部属性”即“本质属性”的数量相对少并且变化较少,“外部属性”则由客户端维护并以参数的形式通知Flyweight对象。这样的分解方法,使Flyweight对象的内存需求相对较小。享元模式通过抽象工厂方法来创建Flyweight对象并在工厂方法类中内置对象共享机制,这样使用享元模式定义的对象的内存需求更小。
  •   从对象方法的角度看,结构型模式从两个方面来优化对象的设计:
  • 对象外部接口的优化:
    • 外观模式定义一套新的接口对客户隐藏子系统及子系统间的交互,解除了客户和系统设计之间的耦合;
    • 组合模式为客户提供一致的接口来处理容器对象和叶子对象,客户不必(或者很少)关注容器对象和叶子对象的差异性;
    • 代理模式为对象访问提供一个间接层,为客户隐藏一些访问控制相关的逻辑,例如RPC(远地过程调用)隐藏了“被调逻辑”可能和客户不在相同计算机的事实。
  • 对象接口实现的优化:
    • 适配器模式协调两个不兼容的接口,重用那些功能相似但接口不兼容的代码逻辑;
    • 装饰模式不用继承,而用组合方式为对象动态添加功能,让被装饰对象对于新添加的功能保持透明;
    • 桥接模式解除了面向客户的“抽象接口”和面向实现的“实现接口”之间的耦合,让两个接口独立变化。

由此可见,结构型模式优化了对象的设计。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值