雇工模式(Employee Pattern)

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

1 雇工模式的定义

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

2 雇工模式的应用场景

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

3 雇工模式的UML类图

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

file

由上图可以看到,雇工模式主要包含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弹架构 』可获取更多技术干货!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tom 弹架构

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值