代理模式

2019-07-10  本文已影响0人  码上述Andy

1.概述

为其他对象提供代理。

2.UML结构图

以我们项目平时客服值班为例:


image.png

CustomerProxy

客服代理

RealSubject

实际处理问题类

Subject

共同抽象接口

Cliect

客户类
整个流程就是客户出现问题-->找到客服-->找到RD值班同学处理,客服就是代理的角色。

3.代码实现

共同抽象接口

/**
 * Created by zhouwen on 2019/7/10 21:51
 */
public interface Subject {
    void process();
}

实际处理类,业务逻辑的实际处理者

/**
 * Created by zhouwen on 2019/7/10 21:52
 */
public class RealSubject implements Subject {
    @Override
    public void process() {
        Logger.getLogger("RealSubject").info("实际问题处理者");
    }
}

代理类,委托给实际处理对象

/**
 * Created by zhouwen on 2019/7/10 21:53
 */
public class CustomerProxy implements Subject{

    private RealSubject mSubject;

    public CustomerProxy() {

    }

    @Override
    public void process() {
        preProcess();
        mSubject.process();
    }

    private void preProcess() {
        mSubject = new RealSubject();
    }
}

客户类

/**
 * Created by zhouwen on 2019/7/10 21:54
 */
public class Client {
    public void test() {
        CustomerProxy customerProxy = new CustomerProxy();
        customerProxy.process();
    }
}

That's All

上一篇 下一篇

猜你喜欢

热点阅读