設計模式第二話 工廠模式和抽象工廠模式

2021-07-28 23:32:54 字數 2864 閱讀 8505

今天在慕課上學習了模式的秘密——工廠模式和抽象工廠模式,還需要更加深入地了解。(以下內容整理自慕課網)

傳送門:

(一)   工廠模式是什麼?

例項化物件的時候,我們用工廠方法來代替new操作

工廠模式包括了工廠模式和抽象工廠模式

(二)   工廠模式的意圖是什麼?

定義乙個介面來建立物件,但是讓子類來決定哪些類需要被例項化,它將例項化的工作推遲到了子類中去實現。

(三)   什麼時候使用工廠模式呢?

有一組類似的物件需要例項化;

在編碼時不確定需要建立哪種類的例項;

系統需要考慮擴充套件性;(譬如,在接下來的開發中,又有新的需求新增進來)

(四)   工廠模式的動機是什麼?

在專案中,當乙個物件變化時,我們希望依賴於該物件的其他物件不會受到影響。

(五)   工廠模式的**實現

場景: 畫臉蛋

首先,我們定義乙個介面,介面中有乙個draw方法用於畫髮型。

public inte***ce hairinte***ce
然後新增兩個髮型類——左髮型類和右髮型類

public class lefthair implements hairinte***ce 

}

public class righthair implements hairinte***ce 

}

我們想給這些髮型類乙個統一個管理,那麼定義乙個hai***ctory 工廠類。在這個工廠類中對不同髮型類的例項化進行統一的管理,根據使用者的選擇進行例項化。具體是通過類的getinstance()方法來實現的,同時注意這一方法要有try catch語句來避免找不到類的情況。

/*

* 根據需求建立髮型物件

*/public class hai***ctory catch (instantiationexception | illegalacces***ception | classnotfoundexception e)

throw new runtimeexception();}}

(六)   抽象工廠模式的**實現首先,我們定義介面男孩和介面女孩

public inte***ce boy
public inte***ce girl
然後,定義類聖誕男孩和類新年男孩,類聖誕女孩和類新年女孩,分別實現介面

public class mcboy implements boy 

}

public class mcgirl implements girl 

}

public class nyboy implements boy 

}

public class nygirl implements girl 

}

接著,不管是男孩女孩,定義乙個工廠總管理介面

public inte***ce prrsonfactory
然後,定義聖誕工廠類和新年工廠類,實現總的工廠介面,來作為具體的工廠類管理工具

public class mcfactory implements  prrsonfactory

@override

public girl getgirl()

}

public class nyfactory implements prrsonfactory

@override

public girl getgirl()

}

這樣就實現了上面的抽象工廠模式圖。

(七)   常見應用

(八)   總結

從以上我們可以看出,抽象工廠模式可以看成是工廠模式的推廣,而工廠模式是抽象工廠模式的乙個極端情況。

工廠模式是用來建立乙個產品的等級結構,抽象工廠模式可以用來建立多個產品的等級結構。

工廠模式只有乙個抽象產品類,抽象工廠模式有多個抽象產品類。

設計模式之工廠模式(簡單工廠 工廠模式 抽象工廠)

參考博文 侵權必刪 什麼是工廠模式 通過 物件建立 模式繞開new,來避免物件建立 new 過程中所導致的緊耦合 依賴具體類 適用性 使用new建立物件且導致緊耦合的場景。思考 物件導向程式設計要以動態的思維去看待 換句話說,在看 時需要時間概念,發現 在未來的穩定之處和變化之處。一般介面和抽象類是...

物件導向設計第二話

二 軟體開發過程 uml unified modeling language,統一的建模語言 在乙個ooad軟體開發過程,我們要完成二個不同的工作 1 ooa 分析階段我們主要 要做什麼?what to do?分析階段考察如何解決現實問題 建立乙個清晰的商業問題的檢視 概述系統必須執行的任務 建立商...

設計模式(二)抽象工廠模式

以下所有資料位偽造 o o哈哈 業務邏輯 以同一系統適應美國 中國的工資計算方式,計算公式是 到手的工資 基本工資 獎金 稅收 如中國的工資計算是 到手的工資 基本工資 獎金 稅收 稅收 基本工資 5 獎金 企業自己的計算方式 美國的工作計算是 稅收 基本工資 10 獎金 25 獎金 美國企業自己的...