装饰模式:
主要使用到抽象类。
注意:装饰类也是主类的子类!这样,装饰操作可以一层一层叠加。
代理模式
代理也就是中间人,中间人具有和你一样的操作,你直接和中间人打交道就行了,具体的实现细节由他处理。如汽车代理,很多人和汽车代理打交道买车,汽车代理向很多汽车厂家买车,至于车怎么买的,需要什么条件,能买到什么车都由汽车代理完成。
可见,代理类和需要代理类具有相同接口(父类),代理类接受需要代理类(即需要代理类作为参数传给代理类),代理执行操作,在执行过程中,用到需要代理类的属性来作一些判断。然后返回操作结果:失败或购买到的某种汽车。
注:图中client相当于main 函数,并不是上文说到的需要代理的类,subject才是需要代理的类。