设计模式——雇工模式

雇工模式

雇工模式也叫做仆人模式(Servant Design Pattern):行为模式的一种,它为一组类提供通用的功能,而不需要类实现这些功能,它是命令模式的一种扩展或者说是命令模式的一种简化

类图中:

  • IServiced接口定义了“一组类”所具有的功能。
  • Serviced1和Serviced2是两个具体的功能。
  • Servant是一个雇工,负责执行上面连个功能。
public interface IServiced { 
    //具有的特质或功能 
    public void serviced(); 
}
public class Serviced1 implements IServiced { 
    public void serviced(){ 
    }
}

public class Serviced2 implements IServiced { 
    public void serviced(){ 
    } 
}
public class Servant { 
    //服务内容 
    public void service(IServiced serviceFuture) { 
        serviceFuture.serviced(); 
    } 
}

雇工模式的实例

我是一个土豪,突然一夜暴富,于是有钱的我雇了三个佣人——厨师、园丁、裁缝,他们都具有相同的功能:清洁。

于是,我们定义一个包含被清洁功能的接口:

public interface Cleanable { 
    //被清洁 
    public void celaned(); 
}

然后,定义被清洁者,有厨房,花园和衣服:

//花园 
class Garden implements Cleanable{ 
    public void celaned(){ 
        System.out.println(“花园被清洁干净”); 
    } 
}

//厨房 
class Kitchen implements Cleanable{ 
    public void celaned(){ 
        System.out.println(“厨房被清洁干净”); 
    } 
}

//衣服 
class Cloth implements Cleanable{ 
    public void celaned(){ 
        System.out.println(“衣服被清洁干净”); 
    } 
} 

定义一个清洁者,可以是三个佣人之一,来调用这些功能:

public class Cleaner { 
    //清洁 
    public void clean(Cleanable clean){ 
        clean.celaned(); 
    } 
}
public class Client { 
    public static void main(String[] args) { 
        //厨师清洁厨房 
        Cleaner cookie = new Cleaner(); 
        cookie.clean(new Kitchen()); 
        //园丁清洁花园 
        Cleaner gardener = new Cleaner(); 
        gardener.clean(new Garden()); 
        //裁缝清洁衣服 
        Cleaner tailer = new Cleaner(); 
        tailer.clean(new Cloth()); 
    } 
} 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

肥羊汤

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

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

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

打赏作者

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

抵扣说明:

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

余额充值