雇工模式
雇工模式也叫做仆人模式(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());
}
}