GOF之结构型模式Ⅱ(重点)

装饰器模式 (decorater(包装器模式 Wrapper))

动态的为对象增加一个新的功能
优点:使用对象的关联关系取代继承关系,降低系统的耦合度,避免类型体系的快速膨胀
缺点:会产生很多小对象,大量小对象占用内存,在一定程度上影响性能

组件:
Component:抽象构件,真实对象和装饰对象所相同的接口
ConcreteComponent:具体构件角色
Decorator:装饰角色,持有一个抽象构件的引用
ConcreteDecorator:具体装饰角色,负责给构件对象添加新的“装饰”
实例:IO输入输出流,Swing包界面构件,Servlet中提供request对象HttpServletRequestWrapper
UML:
在这里插入图片描述
PS:装饰器模式和桥接模式区别:
桥接模式是对对象自身现有机制沿着多个维度变化,是既有部分不稳定;
装饰器模式是增加新的功能。

外观模式 (Facade)

迪米特法则(最少知识原则):一个软件实体应当尽可能少的与其他实体发生相互作用
将现有接口功能进行组合封装,对外界提供最少的接口

享元模式 FlyWeight

特点:
内存属于稀缺资源,多个完全相同或相似的对象,共同占用内存
以共享的方式高效的支持大量细粒度对象的重用
极大的减少了内存中对象的数量,运行时间变长,以时间换取空间

核心关键 :内部状态:可以共享,不会随环境变化而改变
外部状态:不可共享,会随环境变化而随之改变

组件:
FlyweightFactory:享元工厂类,创建并管理享元对象,一般设计为键值对
FlyWeight:抽象享元类,申明公共方法,可提供内部状态,设置外部状态
ConcreteFlyWeight:具体享元类,
UnsharedConcreteFlyWeight:非共享享元类
example:线程池,数据库连接池,String类的设计
UML:
在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值