雇工模式(Employee Pattern)

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

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

1 雇工模式的定义

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

2 雇工模式的应用场景

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

3 雇工模式的UML类图

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

3cde45019f144b298707326d17763c75.png

由上图可以看到,雇工模式主要包含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弹架构:30个设计模式真实案例(附源码),挑战年薪60W不是梦


本文为“Tom弹架构”原创,转载请注明出处。技术在于分享,我分享我快乐!

如果本文对您有帮助,欢迎关注和点赞;如果您有任何建议也可留言评论或私信,您的支持是我坚持创作的动力。

相关文章
|
Java Apache 容器
Invalid <url-pattern> /admin/*.jsp in filter mapping
完成错误信息 严重: A child container failed during start java.util.concurrent.ExecutionException: org.apache.
1180 0
|
设计模式 uml
空对象模式(Null Object Pattern)
空对象模式(Null Object Pattern)不属于GoF设计模式,但是它作为一种经常出现的模式足以被视为设计模式了。其具体定义为设计一个空对象取代NULL对象实例的检查。NULL对象不是检查控制,而是反映一个不做任何动作的关系。这样的NULL对象也可以在数据不可用的时候提供默认的行为,属于行为型设计模式。
103 0
|
vr&ar
Testpattern
Testpattern
63 0
|
编解码 缓存 负载均衡
TestPattern error
TestPattern error
444 0
|
设计模式 监控 搜索推荐
过滤器模式(Filter Pattern)
过滤器模式(Filter Pattern)是一种结构型设计模式,它通过一系列条件来过滤集合中的对象,并返回符合条件的对象子集。
147 0
|
编译器 数据库 C++
参数化查询 '(@UserName nvarchar(1),@PassWord nvarchar(4000))Select * from Us未提供“@PassWord”参数
参数化查询 '(@UserName nvarchar(1),@PassWord nvarchar(4000))Select * from Us未提供“@PassWord”参数
133 0
【1119】Pre- and Post-order Traversals (30分)
【1119】Pre- and Post-order Traversals (30分)
118 0
|
SQL Java 数据库
PreparedStatement 模糊匹配 结果却:Parameter index out of range (1 > number of parameters, which is 0)
PreparedStatement 模糊匹配 结果却:Parameter index out of range (1 > number of parameters, which is 0)
491 0
|
JavaScript 前端开发