1. 程式人生 > >僱工模式(Servant Design Pattern)。

僱工模式(Servant Design Pattern)。

定義

僱工模式也叫做僕人模式,其意圖是:

僱工模式是行為模式的一種,他為一組類提供通用的功能,而不需要類實現這些功能,他是命令模式的一種擴充套件。

IServiced是用於定義“一組類”所具有的功能,其示例程式碼如下所示。

public interface IServiced {
	/**
	 * 具有的特質或功能
	 */
	void serviced();
}

針對不同的服務物件具備不同的服務內容,也就是具體的功能實現IServiced介面即可,示例程式碼如下所示。

public class Serviced1 implements IServiced {
	@Override
	public void serviced() {}
}
public class Serviced2 implements IServiced {
	@Override
	public void serviced() {}
}

功能定義完畢後,我們需要由一個僱工來執行這些功能。簡單的說,就是需要有一個執行者,可以把一組功能聚集起來,示例程式碼如下所示。

public class Servant {
	/**
	 * 服務內容
	 * 
	 * @param serviceFuture
	 */
	public void service(IServiced serviceFuture) {
		serviceFuture.serviced();
	}
}

在整個僱工模式中,所有具有IServiced功能的類可以實現該介面,然後由僱工類Servant進行集合,完成一組類不用實現通用功能而具有相應職能的目的。

最佳實踐

在日常的開發過程中,我們可能已經接觸過僱工模式,只是我們沒有把他抽取出來,也沒有彙編成冊。或許大家已經看出這與命令模式非常相似,會發現僱工模式是命令模式的一種簡化,但他更符合我們實際的需要,更容易進入開發場景中。