4、Delegate委派模式

1.1 描述

  • 委派模式是不属于其三种分类当中,即不属于23种设计模式当中。
  • 委派模式类似于中介的功能是一种委托机制,其中是有委托人和受托人的两个角色,类似于中介的功能,关注的是结果并不关注过程且持有被委托人的引用。

1.2 原理

类B和类A是两个互相没有任何关系的类,B具有和A一模一样的方法和属性;并且调用B中的方法,属性就是调用A中同名的方法和属性。B好像就是一个受A授权委托的中介。第三方的代码不需要知道A的存在,也不需要和A发生直接的联系,通过B就可以直接使用A的功能,这样既能够使用到A的各种公能,又能够很好的将A保护起来了。

2、Code 演示

1)定义抽象任务角色接口
public interface IExector { 
    //员工执行任务
    void task();
}
2) 具体任务角色,实现上面的接口,这里定义两个实现类,被委派者
//员工A
public class ExectorA implements IExector {
    @Override
    public void task() {
        System.out.println("A员工开始执行任务");
    }
} 

//员工B
public class ExectorB implements IExector {
    @Override
    public void task() {
        System.out.println("B员工开始执行任务");
    }
}
3) 委派角色, 是整个模式的核心角色
//调度:项目经理
public class Dispatcher {
    //指定的执行者
    private IExector exector;

    public Dispatcher(IExector exector) {
        this.exector = exector;
    }
    //项目经理:虽然也有执行方法
    //但是他的工作职责是不一样的
    public void task() {
        this.exector.task();
    }
}
4) Demo

创建委派者类对象,委派者类对象在根据要求委派A去完成任务。

public class DispatcherTest {
    public static void main(String[] args) {
        //看上去好像是我们的项目经理在干活\
        //实际干活的人是普通员工
        Dispatcher dispatcher = new Dispatcher(new ExectorA());
        //这就是典型的干活是我的,功劳是你的。
        dispatcher.task();
    }
} 
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 13,406评论 0 13
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,915评论 1 32
  • 设计模式基本原则 开放-封闭原则(OCP),是说软件实体(类、模块、函数等等)应该可以拓展,但是不可修改。开-闭原...
    西山薄凉阅读 9,407评论 3 14
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,422评论 2 17
  • 每一个晚高峰 在你的城市都很拥挤 你开着车子要耐心一些 更要注意安全 保护自己 回到家以后 你的晚饭要自己打理 楼...
    阿克叔阅读 1,877评论 0 1

友情链接更多精彩内容