结构型模式(二)

来源:互联网 发布:兼职淘宝模特南京 编辑:程序博客网 时间:2024/05/16 23:47

10、facade  外观

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

     ​    编译(){

    ​    ​    预处理()

    ​    ​   语法分析()

    ​    ​    ​....

    ​    ​​} 

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

优缺点:

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


11、 flyweight  享元

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

例:

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

优缺点:

减少了空间。


12、porxy 代理

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

    ​    ​    ​    ​subject

    ​    ​    ​    ​    ​|

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

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

区别:

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

优缺点:

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

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

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

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

0 0
原创粉丝点击