写点什么

雇工模式(Employee Pattern)

作者:Tom弹架构
  • 2021 年 11 月 25 日
  • 本文字数:1025 字

    阅读完需:约 3 分钟

本文节选自《设计模式就该这样学》

1 雇工模式的定义

雇工模式(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 弹架构 』可获取更多技术干货!

发布于: 1 小时前阅读数: 7
用户头像

Tom弹架构

关注

不只做一个技术者,更要做一个思考者 2021.10.22 加入

畅销书作者,代表作品:《Spring 5核心原理》、《Netty 4核心原理》、《设计模式就该这样学》

评论

发布
暂无评论
雇工模式(Employee Pattern)