第一篇:交換機端口工作模式一些小結
交換機access和trunk的一些小結
從各個地方看了,雜七雜八的,隨便記下吧!
以太網端口有 3種鏈路類型:access、trunk、hybird
Access類型端口只能屬于1個VLAN 般用于連接計算機 端口;
Trunk類型端口可以允許多個VLAN通過,可以接收和發送多個VLAN 報文,一般用于交換機之間的連接;
Hybrid類型端口可以允許多個VLAN通過,可以接收和發送多個VLAN 報文,可以用于交換機的間連接也可以用于連接用戶計算機。
Hybrid端口和Trunk端口在接收數據時處理思路方法是一樣的,唯一區別的處在于發送數據時:Hybrid端口可以允許多個VLAN報文發送時不打標簽,而Trunk端口只允許缺省VLAN報文發送時不打標簽。
缺省VLAN:
Access端口只屬于1個VLAN 所以它缺省VLAN就是它所在VLAN不用設置; Hybrid端口和 Trunk端口屬于多個VLAN,所以需要設置缺省VLAN ID。缺省情況下 Hybrid端口和Trunk端口缺省VLAN為VLAN 1;
如果設置了端口缺省VLAN ID當端口接收到不帶VLAN Tag報文后 則將報文轉發到屬于缺省VLAN的端口;當端口發送帶有VLAN Tag報文時,如果該報文 VLAN ID和端口缺省VLAN ID相同,則系統將去掉報文VLAN Tag,然后再發送該報文。
注:對于華為交換機缺省VLAN被稱為“Pvid Vlan” 對于思科交換機缺省VLAN被稱為“Native Vlan”
交換機接口出入數據處理過程: Acess端口收報文:收到個報文判斷是否有VLAN信息:如果沒有則打上端口 PVID并進行交換、轉發,如果有則直接丟棄(缺省)Acess端口發報文:將報文VLAN信息剝離直接發送出去
trunk端口收報文: 收到一個報文,判斷是否有VLAN信息:如果沒有則打上端口 PVID 并進行交換轉發,如果有判斷VLAND ID是否在該trunk的允許范圍內,如果在范圍內則轉發,否則丟棄
trunk端口發報文:比較端口PVID和將要發送報文VLAN信息如果兩者相等則剝離VLAN信息再發送,如果不相等則直接發送 hybrid端口收報文: 收到一個報文,判斷是否有VLAN信息:如果沒有則打上端口 PVID 并進行交換轉發。如果有則判斷該hybrid端口是否允許該VLAN數據進入:如果可以則轉發,否則丟棄(此時端口上untag配置是不用考慮,untag配置只對發送報文時起作用)hybrid端口發報文:
1、判斷該VLAN在本端口屬性(disp erface 即可看到該端口對哪些VLAN是untag 哪些VL AN是tag)
2、如果是untag則剝離VLAN信息再發送如果是tag則直接發送
第二篇:簡單網管交換機端口鏡像功能設置(范文模版)
簡單網管交換機端口鏡像功能設置
文檔適用產品型號:FS116E,JFS524E,GS105E,GS108Ev1,GS108Ev2,GS108PEv1,GS108PEv2,GS116E,JGS524E,XS708E,GS105PE 端口鏡像
端口鏡像功能是把交換機一個或多個端口的數據在發出或接收的同時復制一份到指定的鏡像端口,以監測進出網絡的所有數據包,從而很好的保證網絡安全;在網絡出現故障時,也能迅速地進行故障定位。簡單網管交換機支持一(鏡像端口)對多(源端口)的端口鏡像。拓撲:
上圖中,路由器連接在交換機XS708E的01號端口,監控主機連接在交換機的08號端口。一般所有出口的流量均會通過出口路由器,所以只需監控路由器端口即可收集局域網中所有上網數據。管理軟件(ProSafe Plus Utility)版本:V2.2.24 配置:
進入系統>監控>端口鏡像,配置界面如下圖所示。
端口鏡像:默認值為禁用,即未啟用此功能,點選啟用,啟用端口鏡像功能; 源端口:此處選擇被監控的端口,這里選擇連接出口路由器的01號端口; 目標端口:此處選擇監控端口,即連接監控服務器的08號端口。
注意:源端口不可作為目標端口,并且源端口或目標端口不可作為LAG成員。點擊應用。
第三篇:交換機工作原理
交換機工作原理
一、交換機的工作原理
1.交換機根據收到數據幀中的源MAC地址建立該地址同交換機端口的映射,并將其寫入MAC地址表中。
2.交換機將數據幀中的目的MAC地址同已建立的MAC地址表進行比較,以決定由哪個端口進行轉發。
3.如數據幀中的目的MAC地址不在MAC地址表中,則向所有端口轉發。這一過程稱為泛洪(flood)。
4.廣播幀和組播幀向所有的端口轉發。
二、交換機的三個主要功能
學習:以太網交換機了解每一端口相連設備的MAC地址,并將地址同相應的端口映射起來存放在交換機緩存中的MAC地址表中。
轉發/過濾:當一個數據幀的目的地址在MAC地址表中有映射時,它被轉發到連接目的節點的端口而不是所有端口(如該數據幀為廣播/組播幀則轉發至所有端口)。
消除回路:當交換機包括一個冗余回路時,以太網交換機通過生成樹協議避免回路的產生,同時允許存在后備路徑。
三、交換機的工作特性
1.交換機的每一個端口所連接的網段都是一個獨立的沖突域。
2.交換機所連接的設備仍然在同一個廣播域內,也就是說,交換機不隔絕廣播(惟一的例外是在配有VLAN的環境中)。
3.交換機依據幀頭的信息進行轉發,因此說交換機是工作在數據鏈路層的網絡設備(此處所述交換機僅指傳統的二層交換設備)。
四、交換機的分類
依照交換機處理幀時不同的操作模式,主要可分為兩類:
存儲轉發:交換機在轉發之前必須接收整個幀,并進行錯誤校檢,如無錯誤再將這一幀發往目的地址。幀通過交換機的轉發時延隨幀長度的不同而變化。
直通式:交換機只要檢查到幀頭中所包含的目的地址就立即轉發該幀,而無需等待幀全部的被接收,也不進行錯誤校驗。由于以太網幀頭的長度總是固定的,因此幀通過交換機的轉發時延也保持不變。五、二、三、四層交換機? 多種理解的說法: 1.二層交換(也稱為橋接)是基于硬件的橋接。基于每個末端站點的唯一MAC地址轉發數據包。二層交換的高性能可以產生增加各子網主機數量的網絡設計。其仍然有橋接所具有的特性和限制。
三層交換是基于硬件的路由選擇。路由器和第三層交換機對數據包交換操作的主要區別在于物理上的實施。
四層交換的簡單定義是:不僅基于MAC(第二層橋接)或源/目的地IP地址(第三層路由選擇),同時也基于TCP/UDP應用端口來做出轉發決定的能力。其使網絡在決定路由時能夠區分應用。能夠基于具體應用對數據流進行優先級劃分。它為基于策略的服務質量技術提供了更加細化的解決方案。提供了一種可以區分應用類型的方法。2.二層交換機 基于MAC地址
三層交換機 具有VLAN功能 有交換和路由 ///基于IP,就是網絡
四層交換機 基于端口,就是應用 3.二層交換技術從網橋發展到VLAN(虛擬局域網),在局域網建設和改造中得到了廣泛的應用。第二層交換技術是工作在OSI七層網絡模型中的第二層,即數據鏈路層。它按照所接收到數據包的目的MAC地址來進行轉發,對于網絡層或者高層協議來說是透明的。它不處理網絡層的IP地址,不處理高層協議的諸如TCP、UDP的端口地址,它只需要數據包的物理地址即MAC地址,數據交換是靠硬件來實現的,其速度相當快,這是二層交換的一個顯著的優點。但是,它不能處理不同IP子網之間的數據交換。傳統的路由器可以處理大量的跨越IP子網的數據包,但是它的轉發效率比二層低,因此要想利用二層轉發效率高這一優點,又要處理三層IP數據包,三層交換技術就誕生了。三層交換技術的工作原理
第三層交換工作在OSI七層網絡模型中的第三層即網絡層,是利用第三層協議中的IP包的包頭信息來對后續數據業務流進行標記,具有同一標記的業務流的后續報文被交換到第二層數據鏈路層,從而打通源IP地址和目的IP地址之間的一條通路。這條通路經過第二層鏈路層。有了這條通路,三層交換機就沒有必要每次將接收到的數據包進行拆包來判斷路由,而是直接將數據包進行轉發,將數據流進行交換 4.二層交換技術
二層交換技術是發展比較成熟,二層交換機屬數據鏈路層設備,可以識別數據包中的MAC地址信息,根據MAC地址進行轉發,并將這些MAC地址與對應的端口記錄在自己內部的一個地址表中。具體的工作流程如下:
(1)當交換機從某個端口收到一個數據包,它先讀取包頭中的源MAC地址,這樣它就知道源MAC地址的機器是連在哪個端口上的;
(2)再去讀取包頭中的目的MAC地址,并在地址表中查找相應的端口;
(3)如表中有與這目的MAC地址對應的端口,把數據包直接復制到這端口上;
(4)如表中找不到相應的端口則把數據包廣播到所有端口上,當目的機器對源機器回應時,交換機又可以學習一目的MAC地址與哪個端口對應,在下次傳送數據時就不再需要對所有端口進行廣播了。
不斷的循環這個過程,對于全網的MAC地址信息都可以學習到,二層交換機就是這樣建立和維護它自己的地址表。從二層交換機的工作原理可以推知以下三點:
(1)由于交換機對多數端口的數據進行同時交換,這就要求具有很寬的交換總線帶寬,如果二層交換機有N個端口,每個端口的帶寬是M,交換機總線帶寬超過N×M,那么這交換機就可以實現線速交換;
(2)學習端口連接的機器的MAC地址,寫入地址表,地址表的大小(一般兩種表示方式:一為BEFFER RAM,一為MAC表項數值),地址表大小影響交換機的接入容量;
(3)還有一個就是二層交換機一般都含有專門用于處理數據包轉發的ASIC(Application specific Integrated Circuit)芯片,因此轉發速度可以做到非常快。由于各個廠家采用ASIC不同,直接影響產品性能。
以上三點也是評判二三層交換機性能優劣的主要技術參數,這一點請大家在考慮設備選型時注意比較。
(二)路由技術
路由器工作在OSI模型的第三層---網絡層操作,其工作模式與二層交換相似,但路由器工作在第三層,這個區別決定了路由和交換在傳遞包時使用不同的控制信息,實現功能的方式就不同。工作原理是在路由器的內部也有一個表,這個表所標示的是如果要去某一個地方,下一步應該向那里走,如果能從路由表中找到數據包下一步往那里走,把鏈路層信息加上轉發出去;如果不能知道下一步走向那里,則將此包丟棄,然后返回一個信息交給源地址。
路由技術實質上來說不過兩種功能:決定最優路由和轉發數據包。路由表中寫入各種信息,由路由算法計算出到達目的地址的最佳路徑,然后由相對簡單直接的轉發機制發送數據包。接受數據的下一臺路由器依照相同的工作方式繼續轉發,依次類推,直到數據包到達目的路由器。
而路由表的維護,也有兩種不同的方式。一種是路由信息的更新,將部分或者全部的路由信息公布出去,路由器通過互相學習路由信息,就掌握了全網的拓撲結構,這一類的路由協議稱為距離矢量路由協議;另一種是路由器將自己的鏈路狀態信息進行廣播,通過互相學習掌握全網的路由信息,進而計算出最佳的轉發路徑,這類路由協議稱為鏈路狀態路由協議。
由于路由器需要做大量的路徑計算工作,一般處理器的工作能力直接決定其性能的優劣。當然這一判斷還是對中低端路由器而言,因為高端路由器往往采用分布式處理系統體系設計。
(三)三層交換技術
近年來的對三層技術的宣傳,耳朵都能起繭子,到處都在喊三層技術,有人說這是個非常新的技術,也有人說,三層交換嘛,不就是路由器和二層交換機的堆疊,也沒有什么新的玩意,事實果真如此嗎?下面先來通過一個簡單的網絡來看看三層交換機的工作過程。組網比較簡單
使用IP的設備A------------------------三層交換機------------------------使用IP的設備B 比如A要給B發送數據,已知目的IP,那么A就用子網掩碼取得網絡地址,判斷目的IP是否與自己在同一網段。如果在同一網段,但不知道轉發數據所需的MAC地址,A就發送一個ARP請求,B返回其MAC地址,A用此MAC封裝數據包并發送給交換機,交換機起用二層交換模塊,查找MAC地址表,將數據包轉發到相應的端口。
如果目的IP地址顯示不是同一網段的,那么A要實現和B的通訊,在流緩存條目中沒有對應MAC地址條目,就將第一個正常數據包發送向一個缺省網關,這個缺省網關一般在操作系統中已經設好,對應第三層路由模塊,所以可見對于不是同一子網的數據,最先在MAC表中放的是缺省網關的MAC地址;然后就由三層模塊接收到此數據包,查詢路由表以確定到達B的路由,將構造一個新的幀頭,其中以缺省網關的MAC地址為源MAC地址,以主機B的MAC地址為目的MAC地址。通過一定的識別觸發機制,確立主機A與B的MAC地址及轉發端口的對應關系,并記錄進流緩存條目表,以后的A到B的數據,就直接交由二層交換模塊完成。這就通常所說的一次路由多次轉發。以上就是三層交換機工作過程的簡單概括,可以看出三層交換的特點: 由硬件結合實現數據的高速轉發。
這就不是簡單的二層交換機和路由器的疊加,三層路由模塊直接疊加在二層交換的高速背板總線上,突破了傳統路由器的接口速率限制,速率可達幾十Gbit/s。算上背板帶寬,這些是三層交換機性能的兩個重要參數。簡潔的路由軟件使路由過程簡化。
大部分的數據轉發,除了必要的路由選擇交由路由軟件處理,都是又二層模塊高速轉發,路由軟件大多都是經過處理的高效優化軟件,并不是簡單照搬路由器中的軟件。結論
二層交換機用于小型的局域網絡。這個就不用多言了,在小型局域網中,廣播包影響不大,二層交換機的快速交換功能、多個接入端口和低謙價格為小型網絡用戶提供了很完善的解決方案。
路由器的優點在于接口類型豐富,支持的三層功能強大,路由能力強大,適合用于大型的網絡間的路由,它的優勢在于選擇最佳路由,負荷分擔,鏈路備份及和其他網絡進行路由信息的交換等等路由器所具有功能。
三層交換機的最重要的功能是加快大型局域網絡內部的數據的快速轉發,加入路由功能也是為這個目的服務的。如果把大型網絡按照部門,地域等等因素劃分成一個個小局域網,這將導致大量的網際互訪,單純的使用二層交換機不能實現網際互訪;如單純的使用路由器,由于接口數量有限和路由轉發速度慢,將限制網絡的速度和網絡規模,采用具有路由功能的快速轉發的三層交換機就成為首選。
一般來說,在內網數據流量大,要求快速轉發響應的網絡中,如全部由三層交換機來做這個工作,會造成三層交換機負擔過重,響應速度受影響,將網間的路由交由路由器去完成,充分發揮不同設備的優點,不失為一種好的組網策略,當然,前提是客戶的腰包很鼓,不然就退而求其次,讓三層交換機也兼為網際互連。5.第四層交換的一個簡單定義是:它是一種功能,它決定傳輸不僅僅依據MAC地址(第二層網橋)或源/目標IP地址(第三層路由),而且依據TCP/UDP(第四層)應用端口號。第四層交換功能就象是虛IP,指向物理服務器。它傳輸的業務服從的協議多種多樣,有HTTP、FTP、NFS、Telnet或其他協議。這些業務在物理服務器基礎上,需要復雜的載量平衡算法。在IP世界,業務類型由終端TCP或UDP端口地址來決定,在第四層交換中的應用區間則由源端和終端IP地址、TCP和UDP端口共同決定。
在第四層交換中為每個供搜尋使用的服務器組設立虛IP地址(VIP),每組服務器支持某種應用。在域名服務器(DNS)中存儲的每個應用服務器地址是VIP,而不是真實的服務器地址。
當某用戶申請應用時,一個帶有目標服務器組的VIP連接請求(例如一個TCP SYN包)發給服務器交換機。服務器交換機在組中選取最好的服務器,將終端地址中的VIP用實際服務器的IP取代,并將連接請求傳給服務器。這樣,同一區間所有的包由服務器交換機進行映射,在用戶和同一服務器間進行傳輸。
第四層交換的原理
OSI模型的第四層是傳輸層。傳輸層負責端對端通信,即在網絡源和目標系統之間協調通信。在IP協議棧中這是TCP(一種傳輸協議)和UDP(用戶數據包協議)所在的協議層。
在第四層中,TCP和UDP標題包含端口號(portnumber),它們可以唯一區分每個數據包包含哪些應用協議(例如HTTP、FTP等)。端點系統利用這種信息來區分包中的數據,尤其是端口號使一個接收端計算機系統能夠確定它所收到的IP包類型,并把它交給合適的高層軟件。端口號和設備IP地址的組合通常稱作“插口(socket)”。
1和255之間的端口號被保留,他們稱為“熟知”端口,也就是說,在所有主機TCP/I
P協議棧實現中,這些端口號是相同的。除了“熟知”端口外,標準UNIX服務分配在256到1024端口范圍,定制的應用一般在1024以上分配端口號.分配端口號的最近清單可以在RFc1700”Assigned Numbers”上找到。TCP/UDP端口號提供的附加信息可以為網絡交換機所利用,這是第4層交換的基礎。
“熟知”端口號舉例:
應用協議
端口號
FTP
20(數據)
21(控制)
TELNET
SMTP
HTTP
NNTP
119
NNMP
162(SNMP traps)
TCP/UDP端口號提供的附加信息可以為網絡交換機所利用,這是第四層交換的基礎。
具有第四層功能的交換機能夠起到與服務器相連接的“虛擬IP”(VIP)前端的作用。
每臺服務器和支持單一或通用應用的服務器組都配置一個VIP地址。這個VIP地址被發送出去并在域名系統上注冊。
在發出一個服務請求時,第四層交換機通過判定TCP開始,來識別一次會話的開始。然后它利用復雜的算法來確定處理這個請求的最佳服務器。一旦做出這種決定,交換機就將會話與一個具體的IP地址聯系在一起,并用該服務器真正的IP地址來代替服務器上的VIP地址。
每臺第四層交換機都保存一個與被選擇的服務器相配的源IP地址以及源TCP 端口相關聯的連接表。然后第四層交換機向這臺服務器轉發連接請求。所有后續包在客戶機與服務器之間重新影射和轉發,直到交換機發現會話為止。
在使用第四層交換的情況下,接入可以與真正的服務器連接在一起來滿足用戶制定的規則,諸如使每臺服務器上有相等數量的接入或根據不同服務器的容量來分配傳輸流。
第四篇:收費模式小結(定稿)
“收費模式”小結
隨著高速路網快速發展,偷逃通行費的利益驅動也越來越來大,少數不法司機紛紛利用沖崗、墊鋼板、假綠優等各種手段想方設法偷逃通行費。為避免通行費的流失,維護正常的收費秩序,蘇通大橋北主線積極組織開展了將原有的“標識站模式”改為“收費站模式”活動,此次活動開展了為期三天,取得了階段性成果。在此次“模擬收費”活動中受益頗多。
一是鍛煉了査處能力。通過此次模擬收費,不懂、不會的與同事之間加強了交流溝通,對偷逃通行費的“倒卡車”、假“綠通車”、墊板車等行為,有了更深刻的認識,從而提高其打擊偷逃通行費的能力。
二是進一步加強了責任心。在場外巡崗時,站著稱重儀處,仔細觀察司機過磅情況,發現跳磅、走S彎等異常行為,及時糾正制止,嚴禁閑雜人員靠近收費現場;查“綠優車”時,更是沒有一絲馬虎,按照文件要求,符合綠優條件,確認無誤后才上報亭內收費員,給予“綠優”免費;在亭內操作時,仔細核查軸型、車牌是否一致,認真區分客、貨車,確保無誤后,才判型給予放行,工作中時時刻刻保持著高度的責任心。
在此次活動中,盡管付出了辛勤和努力,但在有些方面還是顯露出不足,存在粗心大意,不夠細心的現象,為此加以深刻反省,在今后工作中,一定認真總結經驗,克服不足,力求把工作做得更細致、嚴謹,從而不增加沒有必要的麻煩。
第五篇:設計模式小結
-----摘自設計模式之禪
一、創建類模式:
包括工廠方法模式、建造者模式、抽象工廠模式、單例模式和原型模式,提供對象的創建和管理職能。
1、單例模式是要保持在內存中只有一個對象。
2、原型模式是要求通過賦值的方式產生一個新的對象。
3、工廠方法模式和建造者模式都屬于對象創建類模式,都用來創建類的對象。區別:(1)意圖不同
工廠方法模式,關注的是一個產品整體。無須關注產品的各部分是如何創建出來的;建造者模式中,一個具體產品的產生是依賴各個部件的產生以及裝配順序,它關注的是“由零件一步一步地組裝出產品對象”。簡單的說,工廠模式是一個對象創建的組線條應用,建造者模式則是通過細線條勾勒出一個復雜對象,關注的產品組成部分的創建過程。(2)產品的復雜度不同
工廠方法模式創建的產品一般都是單一性質產品,而建造者模式創建的則是一個復合產品,它由各個部分復合而成,部件不同產品對象不同。它們的粒度大小不同,一般來說,工廠方法模式的對象粒度比較粗,建造者模式的產品對象粒度比較細。
4、抽象工廠模式比建造者模式的尺度要大,它關注產品整體,而建造者模式關注構建過程,因此建造者模式可以很容易地構建出一個嶄新的產品,只要導演類能夠提供具體的工藝流程。也正因為如何,兩者的應用場景截然不同,如果希望屏蔽對象的創建過程,只提供一個封裝良好的對象,則可以選擇抽象工廠方法模式。而建造者模式可以用在構件的裝配方面,如通過裝配不同的組件或者相同組件的不同順序,可以產生一個新的對象,它可以產生一個非常靈活的架構,方便地擴展和維護系統。
二、結構類模式 包括適配器模式、橋梁模式、組合模式、裝飾模式、門面模式、享元模式和代理模式。
1、代理模式與裝飾模式
代理模式是把當前的行為或功能委托給其他對象執行,代理類負責接口限定:是否可以調用真實角色,以及是否對發送到真實角色的消息進行變形處理,它不對被主題角色(被代理類)的功能做任務處理。代理模式使用到極致開發就是AOP,使用了代理和反射的技術。
裝飾模式是在要保證接口不變的情況下加強肋的功能,它保證的是被修飾的對象功能比原始對象豐富(或減弱),但不做準入條件判斷和準入參數過濾,如是否可以執行類的功能,過濾輸入參數是否合規等,這不是裝飾模式關心的。
在jdk的java.io.*包中大量使用裝飾模式
2、裝飾模式與適配器模式 a.意圖不同
裝飾模式的意圖是加強對象的功能,它不改變類的行為和屬性,只是增加(減弱)功能;而適配器莫斯關注的則是轉化,它的主要意圖是兩個不同對象之間的裝好,它關注轉換。b.施與對象不同
裝飾模式裝飾的對象必須是自己得同宗,也就是相同的接口或父類,只有在具有相同的屬性和行為的情況下,才能比較行為是增加還是減弱;適配器模式則必須是兩個不同的對象,因為它著重于裝換,只有兩個不同的對象才有裝換的必要。c.場景不同
裝飾模式在任何時候都可以使用,只要是想增強類的功能,而適配器模式則是一個補救模式,一般出現在系統成熟或已經構建完畢的項目中,作為一個緊急處理手段采用 d.擴展性不同
裝飾模式很容易擴展;但適配器模式建立模式,去除困難。
三、行為類模式 包括責任鏈模式、命令模式、解釋器模式、迭代器模式、中介者模式、備忘錄模式、觀察者模式、狀態模式、策略模式、模板方法模式、訪問者模式。
1、策略模式與命令模式
兩個模式相似,特別是命令模式退化時,如無接受者,這種情況下,兩個模式類圖完全一樣,代碼實現也比較相似,區別: a.關注點不同
策略模式關注的是算法替換的問題,一個新的算法投產,舊算法退休,或提供多種算法由調用者自己選擇使用,算法的自由更替是它實現的要點。換句話說,策略模式關注的是算法的完整性、封裝性,只有具備了這兩個條件才能保證其可以自由切換。
命令模式則關注的是解耦問題,如何讓請求者和執行者解耦是它需要首先解決的,解耦的要求就是把請求內容封裝為一個個的命令,由接收者執行。由于封裝成了命令,就同時可以對命令進行多種處理,例如撤銷、記錄等 b.角色功能不同
策略模式中的具體算法是負責一個完整的算法邏輯,它是不可再拆分的原子業務單元,一旦變更就是對算法整體的變更。
而命令模式則不同,它關注命令的實現,也就是功能的實現。接收者對命令負責,與請求者無關。命令模式中的接收者只要符合六大設計原則,完全不用關心它是否完成了一個具體邏輯,它的影響范圍也僅僅是抽象命令和具體命令,對它的修改不會擴散到模式外的模塊。
c.策略模式使用于算法要求變換的場景,而命令模式適用于解耦兩個有緊耦合關系的對象場合或多撤銷的場景。
2、策略模式與狀態模式 a.環境角色的職責不同
兩者都有一個叫做context環境角色的類,但區別很大,策略模式的環境角色只是一個委托左右,負責算法的替換;而狀態模式的環境角色不僅僅是委托行為,它還具有登記狀態變化的功能,與具體的狀態類協作,共同完成狀態切換行為隨之切換的任務 b.解決問題的重點不同
策略模式旨在解決內容算法如何改變的問題,也就是將內部算法的改變對外界的影響降低到最小程度,它保證的是算法可以自由地切換;而狀態模式旨在解決內在狀態的改變而引起行為改變的問題,它的出發點是事物的狀態,封裝狀態而暴露行為,一個對象的狀態改變,從外界來看好像是行為改變。c.解決問題的方法不同。
策略模式只是確保算法可以自由切換,但是什么時候用什么算法它決定不了;而狀態模式對外暴露的是行為,狀態的變化一般是由環境角色和具體狀態共同完成的,也就是說狀態模式封裝了狀態的變化而暴露了不同的行為或行為結果。d.應用場景不同
策略模式是一系列平行的、可相互替換的算法封裝后的結果,這就限定了它的應用場景:算法必須是平行的。狀態模式則要求有一系列狀態發生變化的場景,它要求的是有狀態且有行為的場景,也就是一個對象必須具有二維(狀態和行為)描述采用采用狀態模式,如果只有狀態而沒有行為,則狀態的變化就失去了意義。e.復雜度不同
通常策略模式結構簡單,易擴展。
狀態模式比較復雜,它封裝的是變化,而變化無窮。
3、觀察者模式(觸發鏈、觀察者鏈)與責任鏈模式 a.鏈中的消息對象不同
從首節點開始到最終的尾節點,兩個鏈中傳遞的消息對象是不同的。責任鏈模式基本不改變消息對象的結構,雖然每個節點都可以參與消費(一般不參與消防),但它的結構不會改變;再觸發鏈模式中傳遞的對象是可以自由變換,只要上下級節點對傳遞對象了解即可,它不要求鏈中的消息對象不變化,它只要求鏈中相鄰兩個節點的消息對象固定
四、綜合1、2、b.上下節點的關系不同
在責任鏈模式中,上下節點沒有關系,都是接收同樣的對象,所有傳遞的對象都是從鏈首傳遞過來,上一節點是什么沒關系,只要按照自己得邏輯處理就成。而出發鏈模式就不同,它的上下級關系很親密,下級對上級頂禮膜拜,上級對下級絕對信任,鏈中的任意兩個相鄰節點都是一個牢固的獨立團體。c.消息的分銷渠道不同
再責任鏈模式中,一個消息從鏈首傳遞進來后,就開始沿著鏈條向鏈尾運動,方向是單一的、固定的;而觸發鏈模式則不同,由于它采用的是觀察者模式,所以有非常大的靈活性,一個消息傳遞到鏈首后,具體怎么傳遞是不固定的,可以以廣播方式傳遞,也可以以跳躍方式傳遞,取決于邏輯。
策略模式與橋梁模式
策略模式是一個行為模式,旨在封裝一系列的行為。而橋梁模式則是解決在不破壞封裝的情況下如何抽取出它的抽象部分和實現部分,它的前提是不破壞封裝,讓抽象部分和實現部分都可以獨立地變化。簡單的說,策略模式是使用和實現都可以獨立擴展的模式。橋梁模式必然有兩個“橋墩”-抽象化角色和實現化角色,只要橋墩搭建好,橋就有了,而策略模式只有一個抽象角色,可以沒有實現,也可以有很多實現。
門面模式與中介者模式
門面模式是以封裝和隔離為主要任務,而中介者模式則是以調和同事類之間的關系為主,因為要調和,所以具有了部分的業務邏輯控制。區別: a.功能區別
門面模式只是增加了一個門面,它對子系統來說沒有增加任務的功能,子系統若脫離門面模式是完全可以獨立原型的。而中介者模式則增加了業務功能,它把各個同事類中的原有耦合關系移植到了中介者,同事類不可能脫離中介者而獨立存在,除非是想增加系統的復雜性和降低擴展性。b.知曉狀態不同
對門面模式來說,子系統不知道有門面存在,而對中介者來說,每個同事類都知道中介者存在,因為要依靠中介者調和同事之間的關系,他們對中介者非常了解。c.封裝程度不同
門面模式是一種簡單的封裝,所有的請求處理都委托給子系統完成,而中介者模式則需要有一個中心,由中心協調同事類完成,并且中心本身也完成部分業務,它屬于更進一步的業務功能封裝。