不同設計模式的區別

2022-07-14 23:48:25 字數 1538 閱讀 5605

【簡單工廠、工廠方法、抽象工廠、builder模式的區別】

no1:

核心定義:

1)簡單工廠模式:乙個工廠方法建立不同型別的物件

2)工廠方法模式:乙個具體的工廠類負責建立乙個具體物件型別

4)builder模式:物件的構建與表示分離,它更注重物件的建立過程

no2:

工廠方法模式與簡單工廠的區別主要有兩點:

1)工廠方法需要定義抽象工廠類或者介面

2)具體的物件由具體的工廠類來建立,並且每個工廠只建立一類物件

no3:

抽象工廠和工廠方法的區別:

抽象工廠實際上就是工廠方法的公升級版,它的乙個工廠類能夠生產多個不同型別的、相關聯或者相互依賴的物件

no4:

抽象工廠與簡單工廠的區別:

簡單工廠通過乙個靜態函式建立不同型別的物件,而抽象工廠通過工廠子類的多個函式建立多個不同型別的物件

no5:

三個工廠模式和builder模式的區別:

幾個工廠模式側重的是物件的建立,而builder模式則是側重物件的構建過程,通過director與builder的協作將物件的各個部分組裝起來

【**與裝飾模式、橋接模式】

no6:

**模式:為其他物件提供一種**以控制對這個物件的訪問

裝飾模式:動態地給乙個物件新增一些額外的職責。就增加功能來說,裝飾模式相比生成子類更為靈活

橋接模式:將抽象和實現解耦,使得兩者可以獨立地變化

no7:

裝飾模式與**模式的共同點都是增強功能,但是**的特點是新增邏輯控制,而裝飾則是動態地新增功能。

【外觀模式與中介模式】

no8:

外觀模式:要求乙個子系統的外部與其內部的通訊必須通過乙個統一的物件進行。外觀模式提供乙個高層次的介面,使得子系統更易於使用

中介模式:用乙個中介物件封裝一系列的物件互動,中介者使各物件不需要顯示地相互作用,從而使其耦合鬆散,而且可以獨立地改變它們之間的互動

【策略與狀態模式、命令模式】

no9:

策略模式:定義一組演算法,將每個演算法都封裝起來,並且使它們之間可以互換

狀態模式:當乙個物件內在狀態改變時允許其改變行為,這個物件看起來像改變了其類

命令模式:將乙個請求封裝成乙個物件,從而讓你使用不同的請求把客戶端引數化,對請求排隊或者記錄請求日誌,可以提供命令的撤銷和恢復功能

no10:

命令模式在行為上與策略模式優點類似,策略模式關注的是演算法替換的問題,用乙個新的演算法替換舊演算法,或者提供多種演算法由呼叫者選擇,演算法的自由更替是它實現的重點。而命令模式則關注的是解耦問題,如何讓請求者和執行者解耦是它需要首先解決的,解耦的要求就是把請求的內容封裝成乙個乙個的命令,由接收者執行,由於封裝成了命令,就同時可以對命令進行多種處理,例如撤銷、記錄等。

設計模式的區別

簡單 模式中,類知道被 類的行為,因為 類與被 類實現的是同乙個介面,因此 類與被 類的結構是相同的 而策略模式中,策略容器並不知道內部策略的詳細資訊,因為容器並沒有實現與內部策略相同的介面,即容器與內部策略只是簡單的組合關係,容器只是將內部策略的行為抽取出來,進行了統一的實現。策略模式僅僅封裝演算...

UGUI的Canvas不同模式渲染的區別

有三種渲染模式 1 screen space overlay canvas的預設渲染模式 使用者介面將覆蓋整個場景,所有的ui元素都被繪製,畫布自動填充整個螢幕。畫布將主導recttransform元件,並且recttransfrom是不可編輯的。勾選pixel perfect在渲染時會調整到最接近...

設計原則和設計模式的區別

在軟體工程當中,設計原則和設計模式是不同的 設計原則 設計原則是為了更好的設計軟體的高層指導方針 它不提供具體的實現方式也不會繫結任何一種程式語言 最常用的原則是solid srp,ocp,lsp,isp,dip 原則.比如,srp single responsibility principle 建...