Java设计模式-委派模式

委派模式(Delegate)实现层面上, 定义一个抽象接口, 它有若干实现类, 他们真正执行业务方法, 这些子类是具体任务角色; 定义委派者角色也实现该接口, 但它负责在各个具体角色实例之间做出决策, 由它判断并调用具体实现的方法.。委派模式可以根据的任务熟悉选择不同的方式实现。

首先定义一个接口

public interface Worker {

	void doWork();
}

定义两个工人实现接口

public class WorkerLi implements Worker {

	@Override
	public void doWork() {
		System.out.println("Li做了这项工作");
	}

}

public class WorkerWang implements Worker {

	@Override
	public void doWork() {

		System.out.println("wang做了这项工作");

	}

}

定义一个工长用于分配任务

public class WorkerLeader implements Worker {

	@Override
	public void doWork() {

		Worker worker = null;
		//分配任务
		if (Math.random() < 0.5) {
			worker = new WorkerLi();
		} else {
			worker = new WorkerWang();
		}
		worker.doWork();
	}

}

调用工长直接下达任务

public class DemoTest {
	public static void main(String[] args) {
		WorkerLeader WorkerLeader = new WorkerLeader();
		int i = 0;
		while (i++ < 10) {
			WorkerLeader.doWork();
		}
	}
}
  

结果

Li做了这项工作
Li做了这项工作
wang做了这项工作
wang做了这项工作
Li做了这项工作
wang做了这项工作
Li做了这项工作
Li做了这项工作
wang做了这项工作
wang做了这项工作

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值