栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

设计模式之委派模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

设计模式之委派模式

1,目标

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

2,定位

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

3,委派模式的定义

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

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

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

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

新建一个boss.java类

package com.packer.partten.delegate.simple;


public class Boss {

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

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

package com.packer.partten.delegate.simple;


public interface IEmployee {
    public void doing(String command);
}

分别新建员工A/B类

package com.packer.partten.delegate.simple;


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


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;


public class Leader {
    //预先知道每一个员工的特长,特征,分发任务
    private Map register = new HashMap();
    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;


    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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/287438.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号