结构型模式(二)

本文介绍了三种设计模式:外观模式通过封装子系统提供简化接口;享元模式通过共享减少对象实例数量;代理模式则通过代理对象间接操作真实对象,实现解耦和功能扩展。

10、facade  外观

将一系列子系统封装成一个调用接口

     ​    编译(){

    ​    ​    预处理()

    ​    ​   语法分析()

    ​    ​    ​....

    ​    ​​} 

类似builder模式,builder模式最后会用一个get()接口获取一个最终产品

优缺点:

把复杂的调用流程隐藏起来


11、 flyweight  享元

一些类除去一些外部状态,其他可以共享,把共享的部分取出来变成一个享元类,其他类持有指针

例:

火车、汽车、自行车都具有改变外观、移动的功能,可以把相同的功能拿出来构成一个享元类,把类对象的指针分别给他们。

优缺点:

减少了空间。


12、porxy 代理

代理类保存了真实类的指针

    ​    ​    ​    ​subject

    ​    ​    ​    ​    ​|

    ​    ​    ​|------------|

​    ​real_subject  <----<> proxy opt(){real_subject->opt();}

区别:

适配器只包装接口,装饰器会改变原类,代理用于隐藏和优化

优缺点:

隐藏真实的对象在不同空间的事实。(远程代理)

可以在真实需要的时候再创建或者加载。(虚代理,比如加载图片,等到显示的时候再读取图片到内存)

保护对象有不同的访问权限 (保护代理,外面加个壳)

智能指针,访问对象时候附加一些操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值