委派模式不是GOF23中的一员,但是在Spring中经常用到该模式,比如Registry等功能。
以现实生活中的老板委派员工干活来举例,比如说政府要求企业改革,老板将改革的任务发放给员工,老板出钱员工出力,但是功劳还是算在老板头上的,没有人关心这一任务的过程,只关心这个任务的结果,这种模式就是委派模式。
Task.java
一个普通的任务接口。
public interface Task {
void doing();
}
Boss.java
Boss是一个委派任务的对象,它将任务委派下去。
public class Boss implements Task{
private Task task;
Boss(Task task){
this.task = task;
}
@Override
public void doing() {
System.out.println("我是BOSS,我要开始委派人做任务拉,我不管你做任务的过程(是否加班),我只要这个任务的结果");
task.doing();
}
}
WorkerA.java
员工A。
public class WorkerA implements Task{
@Override
public void doing() {
System.out.println("我是work-A,老板委派我做任务,活其实是我干的,但是功劳是老板的");
}
}
WorkerB.java
员工B.
public class WorkerB implements Task{
@Override
public void doing() {
System.out.println("我是work-B,老板委派我做任务,活其实是我干的,功劳是老板的");
}
}