工廠模式的設計

2022-10-01 09:45:10 字數 1555 閱讀 3589

工廠模式是我們最常用的例項化物件模式,是用工廠方法代替new操作的一種模式。

工廠模式有乙個關鍵的構造,根據一般原則命名為factory的靜態方法,然而這只是一種原則,雖然工廠方法可以任意命名這個靜態還可以接受任意資料的引數,必須返回乙個物件。

很多沒接觸過工廠模式的人會不禁問,為啥我要費那麼大的勁兒去構造工廠類去建立物件呢?不去套用那些易維護,可擴充套件之類的話,我們可以考慮這樣 乙個簡單的問題。如果專案中,我們通過乙個類建立物件。在快完成或者已經完成,要擴充套件功能的時候,發現原來的類類名不是很合適或者發現類需要新增建構函式 引數才能實現功能擴充套件。我靠!我都通過這個類建立了一大堆物件例項了啊,難道我還要乙個乙個去改不成?我們現在才感受到了「高內聚低耦合」的博大精深。沒 問題,工廠方法可以解決這個問題。

如果類名發生變化,或者方法的引數發生變化,需要修改所有引入該類的檔案,不易於維護,緊耦合。我們要解決這個問題,所以要使用工廠方法。

工廠模式更多的是解決後期拓展(大部分是檔案命名修改後)的問題。

要在mvc 三層架構上進行所謂的curd ;我們就新建乙個image 的  模型,再控制器層中我們肯定要不管是靜態的還是例項化

那麼我們要進行增刪改查;進的呼叫4回image模型;萬一我們要就行修改image的名字;那程式不就亂套啦

所以說白了,工廠模式實際上就是為程式設計師修改模型名稱提供便利;接下來我實現乙個簡單的工廠模式:

1: 再模型層中新建乙個工廠模式模型:

2:我們可以再這個模型裡進行例項化模型:這裡注意的是必須是公開的靜態的方法  可以不用繼承model

* * 工廠模式

*/public

static

function createfactory()

那麼再控制器中我們就可以執行一系列的增刪改查:我們只需要呼叫工廠類名::方法名稱即可例項化這個模型,進行curd

如果我們要修改模型類名;我們只需要進行這裡的模型名稱和模型名稱和外部的檔名稱啦。

修改images為image 我們進行新增測試。新增成功:

設計模式 工廠設計模式

用於建立物件的介面,交給子類去實現 我們舉乙個生產nokia的例子 public abstract class nokiaphone先試定義了乙個抽象類,抽象出方法poweronphone 模擬手機開機的動作 public class nokia5200 extends nokiaphone pub...

設計模式 工廠設計模式

工廠模式分為工廠方法模式和抽象工廠模式 工廠方法模式分為 普通工廠模式,就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。多個工廠方法模式,是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。靜態工廠...

設計模式 工廠模式(簡單工廠)

一 簡單工廠 定義 簡單工廠模式 factory pattern 屬於類的創新型模式,又叫靜態工廠方法模式 static factorymethod pattern 是通過專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。特點 工廠類直接實現,乙個產品介面,乙個工廠類可以產生多...