代理模式與策略模式的區別!
代理模式與策略模式有一些類似的地方,比如:
策略者可以根據策略不同,執行不同的策略方法;
代理人可以被代理物件的不同,執行不同的被代理人的方法;
似乎用程式碼很難表達清楚二者有什麼區別,那就用一種場景來描述一下二者的區別吧,理解僅供參考!
先說一些人:高層領導,市場部主管,市場部工作人員四個(A,B,C,D);
主管:不做具體的工作,但是他知道每個員工的基本資訊
員工:四個工作人員之間業務類似,但又不是很相同,A自己沒有事情做,但他業務最熟練的,能代B,C,D這三個人做任何事情!
某天領導視察市場部,把主管叫過來,想了解一下員工資訊,就這樣領導問誰的資訊,主管就把相應員工資訊告訴給了領導;
然後呢,領導想看一下員工的工作情況,就讓主管找個人過來演示,這樣,主管就把A叫過來了,讓A就依次把B,C,D的工作內容給領導演示了一下!
主管就是策略者的角色,而A就是一個代理人的角色;
區別:
策略者,即主管,雖然能夠管控各個員工,但是他只能做員工的部分事情,比如提供員工個人基本資訊
代理者,A,由於代理人跟被代理人是同一級別的,代理人必須要熟悉被代理人的所有業務,BCD能幹啥,A就能幹啥;
理解很淺薄,哈哈!
相關推薦
代理模式與策略模式的區別!
代理模式與策略模式有一些類似的地方,比如: 策略者可以根據策略不同,執行不同的策略方法; 代理人可以被代理物件的不同,執行不同的被代理人的方法; 似乎用程式碼很難表達清楚二者有什麼區別,那就用一種場景來描述一下二者的區別吧,理解僅供參考! 先說一些人:高層領導,市場部主
孿生兄弟狀態模式與策略模式有什麽區別,究竟該如何選擇
一段 如何解決 影片 工作 設置 飛機 等等 gety 兩種 都說狀態模式和策略模式很像,它們的 UML 類圖一樣。這也說明,單純從代碼角度來講,它們的本質一樣,其實都是多態的應用。但它們實際所代表的的事物特征是有本質區別的,選擇哪個設計模式,代表了你看待業務場景的角度。從
孿生兄弟狀態模式與策略模式有什麼區別,究竟該如何選擇
都說狀態模式和策略模式很像,它們的 UML 類圖一樣。這也說明,單純從程式碼角度來講,它們的本質一樣,其實都是多型的應用。但它們實際所代表的的事物特徵是有本質區別的,選擇哪個設計模式,代表了你看待業務場景的角度。從合理角度地對業務程序抽象,選擇恰當的設計模式,才能讓程式碼有更好的結構。 這篇文章重點說說我對狀
工廠模式與策略模式之區別
設計模式有很多種,其中功能相似的很多,但是為什麼還要分這麼多種名字,查閱資料,我覺得下面的解釋最為合理:用途不一樣,名字就有區別,一把斧頭用來砍人就叫凶器,用來砍柴就叫伐木斧,用來劈門就
責任鏈模式與策略模式
責任鏈模式 Chain of Responsibility(CoR)模式也叫職責鏈模式或者職責連鎖模式,是行為模式之一,該模式構造一系列分別擔當不同的職責的類的物件來共同完成一個任務,這些類的物件之間像鏈條一樣緊密相連,所以被稱作職責鏈模式。 例1:比如客戶Client要完成一個任務,
淺談設計模式之簡單工廠模式與策略模式
本文主要是關於面向物件程式設計(OOP)的設計模式,瞭解優秀軟體設計的演變過程比學習優秀的設計本身更有價值,因為設計演變的過程蘊藏著巨大的智慧,是一代一代程式設計師的思想的結晶。通過學習設計模式,設計出易於維護、擴充套件、複用以及靈活性好的程式;使用多型、繼承、
大型Java進階專題(七) 設計模式之委派模式與策略模式
## 前言 今天開始我們專題的第七課了。本章節將介紹:你寫的程式碼中是否覺得很臃腫,程式中有大量的if...else,想優化程式碼,精簡程式邏輯,提升程式碼的可讀性,這章節將介紹如何通過委派模式、策略模式讓你程式碼更優雅,消除程式大量冗餘的程式碼。本章節參考資料書籍《Spring 5核心原理》中的第一篇
【轉】策略模式與命令模式區別
區別 相同 策略模式 菜單 nbsp 之間 mman 變化 排隊 策略模式 把易於變化的行為分別封裝起來,讓它們之間可以互相替換, 讓這些行為的變化獨立於擁有這些行為的客戶。GoF《設計模式》中說道:定義一系列算法,把它們一個個封裝起來,並且使它們可以相互替換。該模式使得算
簡單工廠模式、工廠方法模式、抽象工廠模式 、策略模式及策略與工廠之間的區別
一.前言 話說十年前,有一個爆發戶,他家有三輛汽車(Benz(賓士)、Bmw(寶馬)、Audi(奧迪)),還僱了司機為他開車。不過,爆發戶坐車時總是這樣:上Benz車後跟司機說“開賓士車!”,坐上Bmw後他說“開寶馬車!”,坐上 Audi後他說“開奧迪車!”。 你一定說:這人有病!
Java 設計模式 之 代理模式與裝飾模式的區別
最近在學習程式開發之設計模式,在網上找到一篇很不錯的文章。這篇文章很詳細地講解了程式開發過程的中二十三中設計模式。文章連結如下: 我比較了代理模式與裝飾模式,發現兩者之間的區別很小: 相同點: 1. 兩種模式都建立了一個介面;
對設計模式的總結之簡單工廠與策略模式
mage 建立 不變 href catch nag 實現類 初步 cti 前言 面向對象編程追求的本質-提高擴展性、可維護性、靈活性和復用性。合理利用面向對象6個原則,能夠很好的達到要求。如何利用好就是至關重要的了,前人總結了23+個設計模式能夠讓初學者更容易
模板方法模式&策略模式區別聯系
支持 余額 rri get system 流程 lda public () 一、模板方法 模板方法模式:定義 一系列算法, 子類延伸實現。著重點在於:子類去處理不同的方法實現。 看下面例子。 假如一個支付 都包含三個部分: 生成訂單 ----》調用API發起支付----
JS正則表示式:量詞的貪婪模式與惰性模式的區別
在說明貪婪模式與惰性模式區別之前,說明一下JS正則基礎: 1.寫法法基礎: regexObj.test(str);例如/123/.test(‘123’); 2.基本語法 錨點:匹配一個位置 ^表示起始位置;/^a/.test(‘str’);表示是否以a開頭
Python 基礎學習之命令列模式與互動模式的區別
命令列模式:即在win10搜尋框中,直接跳出來的頁面。在此模式下,可以通過執行程式碼"python .py"執行.py檔案。需要注意的是,在此模式下,如果要執行的程式碼檔案不在當前目錄,需要使用cd進行切換,假設我的py檔案在E:\python\demo,那麼需要執行的程式碼指令是“cd /
簡單工廠模式和策略模式的區別
首先看一下簡單工廠類和策略模式(Context)類中程式碼的區別: 簡單工廠類: //現金收費工廠類 class CashFactory { public static CashSuper createCashAccept(string type) { Cas
Linux UDP socket 設定為的非阻塞模式與阻塞模式區別
UDP socket 設定為的非阻塞模式 ? 1 Len
關於虛擬機器(VMware) 中橋接模式與nat模式的區別(個人總結)
一、橋接模式 1.本人通過網上的的查詢得到的答案是,橋接模式使用的是區域網模式,關聯的同時不會對主機網路產生很大的影響,但是我在配置的時候遇到的問題就是在不同的環境下,每次的ip地址都不一樣,導致每次都需要重新配置,橋接模式試用與在固定的網路下面使用,本人也通過配置靜態ip
Linux入門-網路配置-橋接模式與NAT的區別
首先,在說到VMware的網路模型之前,先說一下VMware的幾個虛擬裝置:VMnet0:這是VMware用於虛擬橋接網路下的虛擬交換機; VMnet1:這是VMware用於虛擬Host-Only網路下的虛擬交換機; VMnet8:這是VMware用於虛擬NAT
epoll函式——ET模式與LT模式的區別
LT模式(普通模式):也叫水平觸發。描述符上有資料就緒,如果使用者沒有處理完,可以反覆提醒,當下一輪I/O函式執行時會繼續提醒使用者該描述符上有資料,直到使用者將資料讀完為止。 #include <stdio.h> #include <stdlib.h&g
設計模式實現(二)---策略模式、策略模式與簡單工廠模式結合使用
策略模式(Strategy): 它定義了演算法家族,分別封裝起來,讓它們之間可以互相替換,此模式讓演算法的變化,不會影響到使用演算法的使用者。 策略模式大致實現方法 #include <stdio.h> //抽象演算法類 class Strategy { pu