一、适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。
适配器的特点在于兼容,从代码上的特点来说,适配类与原有的类具有相同的接口,并且持有新的目标对象。
是将一个类(a)通过某种方式转换成另一个类(b)。
http://www.runoob.com/design-pattern/adapter-pattern.html
https://blog.csdn.net/lulei9876/article/details/39994825#
二、代理模式(Proxy):一个类代表另一个类的功能。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。(静态代理)
抽象角色:声明真实对象和代理对象的共同接口,这样可在任何使用真实对象的地方都可以使用代理对象。
真实角色:即为代理对象所代表的目标对象,代理角色所代表的真实对象,是我们最终要引用的对象。
代理角色:代理对象内部含有真实对象的引用,从而可以在任何时候操作真实对象。代理对象提供一个与真实对象相同的接口,以便可以在任何时候替代真实对象。代理对象通常在客户端调用传递给真实对象之前或之后,执行某个操作,而不是单纯地将调用传递给真实对象,同时,代理对象可以在执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装。
Subject抽象角色、RealSubject真实角色、Proxy代理角色。其中:Subject角色负责定义RealSubject和Proxy角色应该实现的接口;RealSubject角色用来真正完成业务服务功能;Proxy角色负责将自身的request请求,调用RealSubject对应的request功能来实现业务功能,自己不真正做业务。
- subject类:抽象角色,定义了RealSubject和Proxy的共用接口,这样就能在任何使用RealSubject的地方都可以使用Proxy;
- RealSubject类:真实角色,定义Proxy所代表的真实实体;
- Proxy类:代理角色,用来代替实体,保存一个引用,使代理可以访问实体,并提供一个与Subject的接口相同的接口。