代理模式

代理模式

代理模式(Proxy),通过代理类封装实际调用类,实现共同的接口,添加额外功能,跟装饰模式都是基于组合原理,区别是代理模式自身管理被代理对象的生命周期,而装饰模式由客户端进行控制.

伪代码例子:

interface ServiceInterface is
    method operation()

class Service implements ServiceInterface is
    // 实现实际业务逻辑
    method operation()

class ServiceProxy implements ServiceInterface is
    // 实际调用对象
    field realService: Service

    ServiceProxy(s: ServiceInterface) { realService = s }

    // 实现相同方法
    method operation() is
        // 执行权限判断等额外操作
        checkAccess()
        realService.opeartion()

    method checkAccess() is
        // ...

class Client is
    ServiceInterface s = new Service()
    ServiceInterface sp = new ServiceProxy(s)
    sp.operation()

你可能感兴趣的:(代理模式)