乐趣区

关于java:雇工模式Employee-Pattern

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

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

退出移动版