代理(委托)模式

  1. 主题抽象类或接口
public interface ISubject {
     void doSomething();
     void doAnything();
}
  1. 主题抽象类或接口实际类
public class RealSubject implements ISubject{
    @Override
    public void doSomething() {
        //具体逻辑
    }
    @Override
    public void doAnything() {
        //具体逻辑
    }
}
  1. 主题抽象类或接口代理类
public class ProxySubject implements ISubject {
    ISubject realSubject = null;
    public ProxySubject(ISubject subject) {
        this.realSubject = subject;
    }
    @Override
    public void doSomething() {
        this.realSubject.doSomething();
    }
    @Override
    public void doAnything() {
        this.realSubject.doAnything();
    }
}
  1. 使用
    ISubject realSubject = new RealSubject();
    ISubject proxySubject = new ProxySubject(realSubject);
    proxySubject.doSomething();
    proxySubject.doAnything();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,981评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • 面向对象的六大原则 单一职责原则 所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于...
    JxMY阅读 974评论 1 3
  • 1 场景问题# 1.1 访问多条数据## 考虑这样一个实际应用:要一次性访问多条数据。 这个功能的背景是这样的;在...
    七寸知架构阅读 3,039评论 1 52
  • 在经过了长时间的折腾之后,终于在Mac环境成功的安装了Gitbook。 安装Gitbook的主要流程如下: 安装n...
    慧行说阅读 31,190评论 19 61