一篇博客读懂设计模式之---委派模式
一篇博客讀懂設計模式之—委派模式
委派模式可能大家聽起來不太熟悉,但是在代碼開發的時候卻很好用,下面從幾個方面來介紹一下
what:是什么?
委派模式:顧名思義,委托其他對象或者實例來幫我們完成任務,既然有委托,那么就有兩種角色:委托類和受托類,這兩個角色在社會上的關系是平等的,類似于我們現實中的產品經理和普通員工的關系,產品經理委托員工來幫他完成任務,產品經理只關心結果:你做好沒?至于怎么做他并不關心,典型的干活的是你(普通員工)成功是我的(項目經理),委派模式也是只關心結果。
why:為什么會出現這種模式:為了隱藏一些具體的實現邏輯
區別:
與其他模式有什么不同;
工廠模式:為了保證結果的多樣性,但是對于用戶來說只有一個方法,它是一種有固定模式的委派模式,工廠模式有屬于自己的一些固定模板,如下:
不理解的可以去參考我的另一篇博客:一篇博客讀懂設計模式之—工廠模式
**代理模式:**雖然代理模式也是設計到兩個對象之間的關系,并且代理對象要持有被代理對象的引用,但是 代理模式更關心的是執行的過程,而委派模式只關心結果,并且委派模式的兩個對象地位是平等的,都要實現同一個接口!
下面舉個例子讓你更好的理解委派模式:
先實現一個接口Executor;
實現兩個受托類:
public class StaffA implements Executor {@Overridepublic void executing() {System.out.println("staff A executor task!");} } public class StaffB implements Executor {@Overridepublic void executing() {System.out.println("staffB execute task");} }再添加一個委托類:
public class Boss implements Executor {private Executor executor;//這個構造方法是關鍵Boss(Executor executor){this.executor = executor;}@Overridepublic void executing() {System.out.println("boss start dispatcher job!");//看上去好像是我們的項目經理在干活//但實際干活的人是普通員工//這就是典型,干活是我的,功勞是你的executor.executing();} }最后添加一個測試類:
public class TestExecutor {public static void main(String[] args) {Boss boss = new Boss(new StaffA());boss.executing();Boss boss1 = new Boss(new StaffB());boss1.executing();} }從上面的測試類我們可以看出,雖然表面看起來是Boss在干活,但是實際上是對應的員工在干活(通過構造器傳入需要干活的員工)
任務完成!
歡迎留言點贊!!
總結
以上是生活随笔為你收集整理的一篇博客读懂设计模式之---委派模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode算法入门- Multip
- 下一篇: wordpress url index.