前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >雇工模式(Employee Pattern)

雇工模式(Employee Pattern)

原创
作者头像
Tom弹架构
修改2021-11-26 18:11:51
3290
修改2021-11-26 18:11:51
举报
文章被收录于专栏:Tom弹架构Tom弹架构

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

1 雇工模式的定义

雇工模式(Employee Pattern)也叫作仆人模式(Servant Pattern),属于行为型设计模式,它为一组类提供通用的功能,而不需要类实现这些功能,也是命令模式的一种扩展。

2 雇工模式的应用场景

在日常开发过程中,我们可能已经接触过雇工模式,只是没有把它抽取出来,也没有汇编成册。或许大家已经看出这与命令模式非常相似,其实雇工模式是命令模式的一种简化,但更符合实际需要,更容易进入开发场景中。

3 雇工模式的UML类图

雇工模式的UML类图如下图所示。

由上图可以看到,雇工模式主要包含3个角色。

(1)抽象服务提供者(Serviced):用于定义服务内容的接口。

(2)具体服务提供者(ConcreteServiced):实现所有的服务内容。

(3)雇工(Servant):即执行者,用于执行服务。

4 雇工模式的通用写法

以下是雇工模式的通用写法。

代码语言:txt
复制
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弹架构”原创,转载请注明出处。技术在于分享,我分享我快乐!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 雇工模式的定义
  • 2 雇工模式的应用场景
  • 3 雇工模式的UML类图
  • 4 雇工模式的通用写法
  • 5 雇工模式的优点
  • 6 雇工模式的缺点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档