建立型設計模式簡述

2021-10-02 01:10:28 字數 2029 閱讀 4142

原型模式

構建者模式

建立型設計模式大概分為以下幾類:

工廠模式

原型模式

構建者模式

單例模式

注:一般建立型設計模式,大多用來做業務bean,很少的構建者可能會用來做資料bean!!!

為了從某種意義上相同的bean,才可以稱之為工廠

工廠模式又可以細分為:

1:簡單工廠–>例如spring,用的就是簡單工廠模式

2:工廠方法

3:抽象工廠

這種設計模式是一種很神奇的設計模式,如果你單單使用它的基礎用法,這個玩意實在是太不好用了;

基礎用法,只要給它乙個字串,它就可以給你乙個物件。

createbean方法中接入參string型別的name,根據name對比到類名,直接例項化返回就可以了。

例: public object creattest(string name)else if(name.equalsignorecase("e"))

return null;

}缺點:1:違反了開閉原則,不利於擴充套件和維護

2:入參不明確

3:簡單工廠老得加else if 這誰受得了呀?

改進方案:

1:spring用了xml配置,建立了對映,就不用單獨寫new了

2:入參不明確,就把入參固定設定為查詢物件的類名唄

3:通過物件名稱,去map集合中直接查詢,省去多餘的**

工廠方法模式說白了就是我先宣告乙個抽象類或者介面,告訴我的子類工廠,你這個方法能幹啥,也

就是定義標準教給大家(其子類),--->自己去建工廠,我給你三規!!!

缺點: 你需要a 產品,你就去a工廠拿

你需要b產品,你就去b工廠拿

個人感覺:這個東西真的不好用(手動捂臉)

抽象工廠模式和工廠方法,想差不大,也是在定義標準;

區別在於工廠方法正對於某乙個bean,也就是乙個真正的工廠產生的是特定的bean

a 工廠產生a ---- b 工廠產生b

抽象工廠是多種bean,乙個真正的工廠可以產生多種bean

比如手機:

a 工廠產生a 的螢幕bean、a 的攝像頭bean。。。。

b工廠產生b的螢幕bean、b的攝像頭bean。。。。

1:淺轉殖

2:深轉殖

重點在於要實現conleable,然後想要轉殖的bean的類增加乙個clone方法,直接呼叫super的clone方法,

當然這個clone方法其實是native方法!

注:此模式慎用!!!!! ,因為你要clone的類中如果有成員變數的型別是自定義類,a物件轉殖之後的b物件,轉殖前後的兩個物件中的此成員變數的引用位址是同乙個,也就是說 你更改了a 物件的此成員變數,b物件的此成員變數會發生響應的更改!!!!!!!!!!!!!!!!!!!!!!!!!!!!

實現serializable介面,使用位元組流讀寫,完全轉殖出乙個新的物件

特點:1:建立物件之前,先new乙個他的構建者--建立a 先new abuild();

2:構建者中含有私有成員變數a,也就是真正需要的物件

3:構建者中提供為私有成員變數的屬性賦值一系列方法

優勢:不會像構造方法一樣,每個屬性都需要傳,即使為null也要傳null

在真正呼叫build()方法之前,私有的成員變數物件,不會被暴露

建立型設計模式

建立型設計模式對類的建立例項化過程進行抽象,將物件的建立和物件的使用分離。簡單工廠模式 使用頻率4星 工廠方法模式 使用頻率5星 抽象工廠模式 使用頻率5星 建造者模式 使用頻率2星 原型模式 使用頻率3星 單例模式 使用頻率4星 toc 簡單工廠模式將物件建立和物件使用相分離,降低了系統耦合度。優...

建立型設計模式

設計模式分為總的來說分為三大類 建立型模式 五種,工廠方法模式 抽象工廠模式 單例模式 建造者模式 原型模式 結構型模式 七種,介面卡模式 裝飾器模式 模式 外觀模式 橋接模式 組合模式 享元模式 行為模式 十一種,策略模式 模板方法模式 觀察者模式 迭代子模式 責任鏈模式 命令模式 備忘錄模式 狀...

建立型 設計模式

單例 單例項,自我例項化,提供全域性訪問點 工廠 不同型別例項由不同工廠建立,當然也有通過乙個靜態方法建立一種例項或通過傳入引數決定生產的例項 這兩種很明顯不方便擴充套件,需修改 抽象工廠 考慮物件有不同維度 如車有型別和顏色 那麼工廠負責產生一類產品 如工廠產生紅車,白車,黑車 那麼型別上可以通過...