设计模式之委派模式

1,目标

掌握委派模式,精简程序逻辑,提升代码的可读性。

2,定位

希望通过对委派模式的学习,让自己写出更加优雅的的代码

3,委派模式的定义

委派模式(Delegate pattern) 的基本作用就是负责任务的调用和分配任务,跟代理模式很像,可以看做是一种特殊情况下的静态代理的全权代理,但是代理模式注重过程,而委派模式注重结果。

不属于GOF 23种设计模式之一,属于行为型模式。

4,委派模式代码实现方式

我们以公司中大boss下方任务到项目经理,项目经理再将任务分配到具体开发人员为例子。

新建一个boss.java类

package com.packer.partten.delegate.simple;

/**
 * Created by lijianfang on 2021/10/3.
 */
public class Boss {

    public void command(String command,Leader leader){
        leader.doing(command);
    }
}

新建一个员工接口IEmployee.java,每一个员工都实现这个接口中的doing方法。

package com.packer.partten.delegate.simple;

/**
 * Created by lijianfang on 2021/10/3.
 */
public interface IEmployee {
    public void doing(String command);
}

分别新建员工A/B类

package com.packer.partten.delegate.simple;

/**
 * Created by lijianfang on 2021/10/3.
 */
public class EmployeeA implements IEmployee {
    @Override
    public void doing(String command) {
        System.out.println("我是A员工,我开始干活了,执行任务 = [" + command + "]");
    }
}
package com.packer.partten.delegate.simple;

/**
 * Created by lijianfang on 2021/10/3.
 */
public class EmployeeB implements IEmployee {
    @Override
    public void doing(String command) {
        System.out.println("我是B员工,我开始干活了,我的任务是[" + command + "]");
    }
}

创建一个项目经理类leader.java类

package com.packer.partten.delegate.simple;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by lijianfang on 2021/10/3.
 */
public class Leader {
    //预先知道每一个员工的特长,特征,分发任务
    private Map<String,IEmployee> register = new HashMap<String,IEmployee>();
    public Leader(){
        register.put("加密算法",new EmployeeA());
        register.put("架构搭建",new EmployeeB());
    }
    public void doing(String command){
        register.get(command).doing(command);
    }

}

最后新建一个测试类delegateTest.java

package com.packer.partten.delegate.simple;

/**
 * Created by lijianfang on 2021/10/3.
 */
    public class delegateTest {
    public static void main(String[] args) {
        new Boss().command("加密算法",new Leader());
        new Boss().command("架构搭建",new Leader());
    }
}

测试结果为:

我是A员工,我开始干活了,执行任务 = [加密算法]
我是B员工,我开始干活了,我的任务是[架构搭建]

Process finished with exit code 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值