委派模式的基本作用就是負責任務的排程和分配任務,跟**模式很像,可以看做是一種特殊情況下的靜態**的全權**,但是**模式注重過程,委派模式注重結果。不屬於gop23種模式之一,屬於行為模式。
在我們工作中,最常見的一種情況就是,當我們公司老闆想做乙個東西,他要找到我們專案經理傳送乙個命令,然後我們專案經理接受到這個命令的時候,專案經理會根據這個東西來進行對團隊裡面的員工來分配。所以,我們專案經理leader就是一種委派模式,他想我們老闆的命令通過委派對員工去做。這就是乙個任務的全權排程和任務分配。
talk is cheap show me the code
因為我們的員工有很多個,我們先宣告乙個員工的統一抽象介面,定義乙個方法為dowork工作。
/**
* @description: 委派模式員工抽象介面
* @author: jh lee
* @create: 2019-03-15 23:13
**/public
inte***ce
employee
然後我們分別建立不同技術特點的員工物件,分別都實現這個抽象員工的介面
員工a,擅長資料加密
/**
* @description: 員工a
* 擅長資料加密
* @author: jh lee
* @create: 2019-03-15 23:18
**/public
class
employeea
implements
employee
}
員工b,擅長編寫sql語句
/**
* @description: 員工b
* 擅長sql語句
* @author: jh lee
* @create: 2019-03-15 23:18
**/public
class
employeeb
implements
employee
}
員工c,擅長jvm效能優化
/**
* @description: 員工c
* 擅長效能優化
* @author: jh lee
* @create: 2019-03-15 23:18
**/public
class
employeec
implements
employee
}
接著我們新建乙個專案經理leader類,裡面當然就有乙個進行任務分發的方法。方法引數,就是我們老闆具體想讓我們專案經理做些什麼,然後裡面有乙個容器,用於記錄我們每乙個員工的技術特點,方便我們通過我們老闆的需求委派給不同的員工去工作。這裡的容器我們還可以在資料庫中進行儲存,也可以直接宣告在我們記憶體中。
/**
* @description: 委派模式專案經理
* @author: jh lee
* @create: 2019-03-15 23:12
**/public
class
leader
//專案經理幹活方法,通過對每乙個員工的了解,讓對應的員工去做對應是,通過命令委派給員工
public
void
dowork
(string command)
}
我們新建乙個老闆boss類,裡面有乙個向專案經理leader傳送命令的方法。
/**
* @description: 委派模式boss類
* @author: jh lee
* @create: 2019-03-15 23:12
**/public
class
boss
}
好,到這裡我們整套委派的模式已經寫完了,我們來測試一下。
/**
* @description: 委派模式測試類
* @author: jh lee
* @create: 2019-03-15 23:30
**/public
class
delegatetest
}
測試結果:
可以看到,我們相應的員工已經被委派到對老闆的需求開始工作了,這就是委派模式。
設計模式 委派模式
1.簡介 角色 受託人,委託人 社會上是平等關係 公司裡面 普通員工,專案經理 各自職責不一樣 專案經理 委託人 主要職責是安排任務 普通員工 受託人 執行任務 2.特點 a 類似與中介的功能 委託機制 b 持有被委託人的引用 c 不關心過程,只關心結果 可以分發給不同員工執行,結果可能不同 d 幹...
設計模式 委派模式
委派模式,委派模式是持有被委託人的引用。不關心過程,只關心結果。相當於乙個中間價起乙個調節和任務分發的乙個作用,就像我們是客戶找管理人員找乙個可以幫我做這件事的員工 下面我們用 實現 首先定義乙個員工介面 員工 public inte ce employee編寫實現,廚師和司機 public cla...
設計模式 委派模式
首先委派模式不屬於23種設計模式。所謂委派,個人理解是 將為達到最終結果的事情交給其他人或中間人來幹,我只要最終結果,其他的事情,由我委派的人來安排。更直白的表達就是,比如,我們想要蓋一棟樓房,蓋完之後我要刷漆,這些事情我自己肯定不能做,所以我這時候就會去找乙個 包工頭 來幫我完成這件事情,我只要告...