一篇博客读懂设计模式之---委派模式

一篇博客读懂设计模式之—委派模式

委派模式可能大家听起来不太熟悉,但是在代码开发的时候却很好用,下面从几个方面来介绍一下

what:是什么?
委派模式:顾名思义,委托其他对象或者实例来帮我们完成任务,既然有委托,那么就有两种角色:委托类和受托类,这两个角色在社会上的关系是平等的,类似于我们现实中的产品经理和普通员工的关系,产品经理委托员工来帮他完成任务,产品经理只关心结果:你做好没?至于怎么做他并不关心,典型的干活的是你(普通员工)成功是我的(项目经理),委派模式也是只关心结果。

why:为什么会出现这种模式:为了隐藏一些具体的实现逻辑

区别:
与其他模式有什么不同;
工厂模式:为了保证结果的多样性,但是对于用户来说只有一个方法,它是一种有固定模式的委派模式,工厂模式有属于自己的一下固定模板,如下:一篇博客读懂设计模式之---委派模式_第1张图片
不理解的可以去参考我的另一篇博客:一篇博客读懂设计模式之—工厂模式

代理模式: 代理模式更关心的是执行的过程,而委派模式只关心结果

下面举个例子让你更好的理解委派模式:
先实现一个接口Executor;

public interface Executor {
	void executing();
}

实现两个受托类:

public class StaffA implements Executor {
	@Override
	public void executing() {
		System.out.println("staff A executor task!");
	}
}
public class StaffB implements Executor {
	@Override
	public void executing() {
		System.out.println("staffB execute task");
	}
}

再添加一个委托类:

public class Boss implements Executor {
	private  Executor executor;

	//这个构造方法是关键
	Boss(Executor executor){
		this.executor = executor;
	}
	@Override
	public void executing() {
		System.out.println("boss start dispatcher job!");
		//看上去好像是我们的项目经理在干活
		//但实际干活的人是普通员工
		//这就是典型,干活是我的,功劳是你的
		executor.executing();
	}
}

最后添加一个测试类:

public class TestExecutor {
	public static void main(String[] args) {
		Boss boss = new Boss(new StaffA());
		boss.executing();

		Boss boss1 = new Boss(new StaffB());
		boss1.executing();
	}
}

任务完成!
欢迎留言点赞!!

你可能感兴趣的:(设计模式)