10、facade 外观
将一系列子系统封装成一个调用接口
编译(){
预处理()
语法分析()
....
}
类似builder模式,builder模式最后会用一个get()接口获取一个最终产品
优缺点:
把复杂的调用流程隐藏起来
11、 flyweight 享元
一些类除去一些外部状态,其他可以共享,把共享的部分取出来变成一个享元类,其他类持有指针
例:
火车、汽车、自行车都具有改变外观、移动的功能,可以把相同的功能拿出来构成一个享元类,把类对象的指针分别给他们。
优缺点:
减少了空间。
12、porxy 代理
代理类保存了真实类的指针
subject
|
|------------|
real_subject <----<> proxy opt(){real_subject->opt();}
区别:
适配器只包装接口,装饰器会改变原类,代理用于隐藏和优化
优缺点:
隐藏真实的对象在不同空间的事实。(远程代理)
可以在真实需要的时候再创建或者加载。(虚代理,比如加载图片,等到显示的时候再读取图片到内存)
保护对象有不同的访问权限 (保护代理,外面加个壳)
智能指针,访问对象时候附加一些操作