设计模式——雇工模式

雇工模式

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章