设计模式学习-结构型模式

结构型模式包含以下七种

适配器模式、代理模式、桥接模式、装饰器模式、享元模式、外观模式、组合模式

 

1、适配器模式(Adapter)

主要应用场景为接口不适用,需要将adaptee封装成target接口的模式,

使用方式有两种,adapter中保存adaptee的一个对象指针;或adapter private继承adaptee,即实现继承。

 

 

2、代理模式(Proxy)

 

代理模式常见几种应用:

①远程代理:如网络应用,调用远程的某个方法

②虚拟代理:如网页浏览时需要加载一些消耗时间的资源如图片

③智能代理:如智能指针,对指针加了访问计数和资源清理

④保护代理:如对不同用户的权限控制

 

代理模式提供的接口是一样的,是为了封装被代理的方法不被暴露。

代理和被代理之间继承自同一父类,proxy中保存被代理的对象指针,调用方法时调用实际对象的实现方法。

 

3、桥接模式(Bridge)

举例:Abstraction类是笔,有大中小型号,Implementor是颜色,有各种颜色,通过组合的形式,减少了实际类的种数

 

通过组合方式解决多场景下继承的实现类变多的情况

 

4、装饰器模式(Decorator)

具体事例:IO类,BufferIO类。

无需通过继承增加子类的方式,就可以实现对类功能的扩展。

装饰器跟被装饰器继承自同一父类,同时装饰器中保存一个component类指针。实现对被装饰类功能的扩展。

跟代理模式很像,装饰器更强调对被装饰类的功能增强,无隔离作用;代理对外提供的都是代理类,有一定隔离作用。

 

5、享元模式(Flyweight)

当系统多处应用同一组对象,则通过加一个对象池,即factory来缓存。如果未创建则创建,如果已经创建则返回已创建对象的指针。

 

6、外观模式(Facade)

当系统比较复杂时,使客户不用依赖于多个类,只依赖于门面(外观)类,然后由Facade角色对不同方法进行调用。

即为复杂的系统提供统一的接口。

 

7、组合模式(Composite)

 

将一个复杂的系统表示为不同Leaf(组件)的一个组合;如一个公司,由不同部门,每个部门由不同员工组成,这样一个树状结构。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值