雇工模式(Employee Pattern)
本文节选自《设计模式就该这样学》1 雇工模式的定义 【雇工模式(Employee Pattern)】雇工模式(Employee Pattern)也叫作仆人模式(Servant Pattern),属于行为型设计模式,它为一组类提供通用的功能,而不需要类实现这些功能,也是命令模式的一种扩展。
2 雇工模式的应用场景 在日常开发过程中,我们可能已经接触过雇工模式,只是没有把它抽取出来,也没有汇编成册。或许大家已经看出这与命令模式非常相似,其实雇工模式是命令模式的一种简化,但更符合实际需要,更容易进入开发场景中。
3 雇工模式的UML类图 雇工模式的UML类图如下图所示。
文章图片
由上图可以看到,雇工模式主要包含3个角色。
(1)抽象服务提供者(Serviced):用于定义服务内容的接口。
(2)具体服务提供者(ConcreteServiced):实现所有的服务内容。
(3)雇工(Servant):即执行者,用于执行服务。
4 雇工模式的通用写法 以下是雇工模式的通用写法。
public class Client {public static void main(String[] args) {
Servant servant = new Servant();
servant.service(new ConcreteServiced1());
servant.service(new ConcreteServiced2());
}
/**
* 通用功能
*/
interface IServiced {
//具有的特质或功能
public void serviced();
}/**
* 具体功能
*/
static class ConcreteServiced1 implements IServiced {
public void serviced(){
System.out.println("Serviced 1 doing");
}
}static class ConcreteServiced2 implements IServiced{
public void serviced(){
System.out.println("Serviced 2 doing");
}
}/**
* 雇工类
*/
static class Servant {
//服务内容
public void service(IServiced serviceFuture){
serviceFuture.serviced();
}
}}
5 雇工模式的优点 扩展性良好,可以很容易地增加雇工来执行新的任务。
6 雇工模式的缺点 增加了程序的复杂度。
关注微信公众号『 Tom弹架构 』回复“设计模式”可获取完整源码。
【推荐】Tom弹架构:30个设计模式真实案例(附源码),挑战年薪60W不是梦
本文为“Tom弹架构”原创,转载请注明出处。技术在于分享,我分享我快乐!
如果本文对您有帮助,欢迎关注和点赞;如果您有任何建议也可留言评论或私信,您的支持是我坚持创作的动力。关注微信公众号『 Tom弹架构 』可获取更多技术干货!
推荐阅读
- --木木--|--木木-- 第二课作业#翼丰会(每日一淘6+1实战裂变被动引流# 6+1模式)
- 设计模式-代理模式-Proxy
- 【译】Rails|【译】Rails 5.0正式发布(Action Cable,API模式等)
- java静态代理模式
- VueX(Vuex|VueX(Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式)
- Kotlin基础(10)-代理模式在kotlin中的使用
- 长谈的确是这个时代需要的一种模式
- 《读_Head_First_有感》_“命令模式”
- 洗洗睡了|洗洗睡了 | 休息的时候,千万注意切换你的行为模式
- 设计模式【15】--从审批流中学习责任链模式