网上做调查赚钱的网站,淘宝网站的建设与运营设计思路,免费申请个人网站,长春大学一篇博客读懂设计模式之—委派模式
委派模式可能大家听起来不太熟悉#xff0c;但是在代码开发的时候却很好用#xff0c;下面从几个方面来介绍一下
what#xff1a;是什么#xff1f; 委派模式#xff1a;顾名思义#xff0c;委托其他对象或者实例来帮我们完成任务但是在代码开发的时候却很好用下面从几个方面来介绍一下
what是什么 委派模式顾名思义委托其他对象或者实例来帮我们完成任务既然有委托那么就有两种角色委托类和受托类这两个角色在社会上的关系是平等的类似于我们现实中的产品经理和普通员工的关系产品经理委托员工来帮他完成任务产品经理只关心结果你做好没至于怎么做他并不关心典型的干活的是你普通员工成功是我的项目经理委派模式也是只关心结果。
why为什么会出现这种模式:为了隐藏一些具体的实现逻辑
区别 与其他模式有什么不同 工厂模式为了保证结果的多样性但是对于用户来说只有一个方法它是一种有固定模式的委派模式工厂模式有属于自己的一些固定模板如下 不理解的可以去参考我的另一篇博客一篇博客读懂设计模式之—工厂模式
**代理模式**虽然代理模式也是设计到两个对象之间的关系并且代理对象要持有被代理对象的引用但是 代理模式更关心的是执行的过程而委派模式只关心结果并且委派模式的两个对象地位是平等的都要实现同一个接口
下面举个例子让你更好的理解委派模式 先实现一个接口Executor
public interface Executor {void executing();
}实现两个受托类
public class StaffA implements Executor {Overridepublic void executing() {System.out.println(staff A executor task!);}
}public class StaffB implements Executor {Overridepublic void executing() {System.out.println(staffB execute task);}
}再添加一个委托类
public class Boss implements Executor {private Executor executor;//这个构造方法是关键Boss(Executor executor){this.executor executor;}Overridepublic 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();}
}从上面的测试类我们可以看出虽然表面看起来是Boss在干活但是实际上是对应的员工在干活通过构造器传入需要干活的员工
任务完成 欢迎留言点赞