美文网首页设计模式互联网科技Java成长之路
设计模式之备受青睐的委派模式

设计模式之备受青睐的委派模式

作者: 爪哇部落格 | 来源:发表于2019-07-28 23:22 被阅读2次

场景简介


王大哥的女儿,装饰者模式中提到的那个肤白貌美的程序媛;通过几年的努力成为了一个项目组长,日常的工作由原来的基础开发,转变为工作的分配以及进度的管理,那么她是如何开展工作的呢?

委派模式


委派模式在于指定具体的类,同时保护被指定的类,向调用方屏蔽内部调用细节;正如在我们的日常工作量,一个英明的领导通常只会向项目管理者询问项目的进度以,而不关注哪个功能是由哪个程序员完成的;通常委托模式有如下特性:

  • 供调用方使用,并向其屏蔽内部实现细节
  • 具体功能有被委托者实现
  • 有委托者进行被委托者的选择和调度

代码演示


首先,实现我们定义一个Worker员工接口

public interface Worker {

    /**
     * 执行工作
     */
    void doWork();
}

其次,我们实现一个具体任务执行的员工OriginalWorker

public class OriginalWorker implements Worker {

    @Override
    public void doWork() {
        System.out.println("I am working very hard");
    }
}

然后,我们实现一个任务委派者DelegateWorker

public class DelegateWorker implements Worker {

    private Worker worker;

    public DelegateWorker(Worker worker) {
        this.worker = worker;
    }

    @Override
    public void doWork() {
        System.out.print("Hi Boss,");
        worker.doWork();
    }
}

写一个简单的Demo,来演示整个过程:

public class BossDemo {

    public static void main(String[] args) {
        Worker delegate = new DelegateWorker(new OriginalWorker());
        delegate.doWork();
    }
}

演示效果:

Hi Boss,I am working very hard

总结


以上示例部分读者可能感觉到有些暗讽的味道,但是请谨记技术无罪,有罪的是人;嘻嘻,我们回到重点,委派模式在Spring 和 MyBatis 源码中都有其影子,例如:MyBatis 在实现二级缓存CachingExecutor时,就是利用了委派模式,感兴趣的读者可以取研究一下,或者移步本人的这可能是简书最白话的MyBatis源码解读;简单的类图结构如下:

图片由Idea生成

相关文章

  • 设计模式之备受青睐的委派模式

    场景简介 王大哥的女儿,装饰者模式中提到的那个肤白貌美的程序媛;通过几年的努力成为了一个项目组长,日常的工作由原来...

  • 设计模式-委派模式

    设计模式-委派模式 定义 委派模式(Delegate Pattern)又叫委托模式,是一种面向对象的设计模式,允许...

  • 源码学习之设计模式(委托模式)

    今天要说的是委派模式。 使用起来 和代理模式有点像,在《设计模式之禅》中讲到代理模式就是委派模式,对于这个观点我不...

  • 设计模式之“委派模式”?!

    今天想要分享的是设计模式中的委派模式,说他是设计模式,但并不是23种设计模式之中的。 委派模式(Delegate)...

  • 委派模式

    委派模式 委派模式不属于GOF23种设计模式中。委派模式(DelegatePattern)的基本作用就是负责任务的...

  • 设计模式之——委派模式

    委派模式(Delegate Pattern)的基本作用就是负责任务的调用和分配,跟代理模式很像,可以看做是一种特殊...

  • Java设计模式之委派模式

    什么是委派模式 这里我以一个简单的例子来形容,公司有大boss和部门leader以及部门里的员工,现在大boss给...

  • 设计模式--委派模式

    1、介绍 Delegate,不属于GOF23种模式,行为模式。主要角色有三种: 抽象任务角色, 委派者角色, 具体...

  • 手撸golang 行为型设计模式 委派模式

    手撸golang 行为型设计模式 委派模式 缘起 最近复习设计模式拜读谭勇德的<<设计模式就该这样学>>本系列笔...

  • 委派模式 java

    委派模式其实并不是常用的二十三种设计模式,它是代理模式和策略模式的组合使用。 举个例子:比如说,boss将任务委派...

网友评论

    本文标题:设计模式之备受青睐的委派模式

    本文链接:https://www.haomeiwen.com/subject/jvemrctx.html