設計模式之簡單工廠模式

2021-09-20 03:50:49 字數 1987 閱讀 2437

簡單工廠模式(****** factory model),又叫做靜態工廠方法模式(static factory method model),屬於建立型模式(也就是用於建立例項物件)。

簡單工廠模式包括了以下三個部分:

ps:因為該模式不符合開閉原則所以不屬於23種gof設計模式之一。

舉個小例子

example:實現乙個計算器可以對兩個數字進行加減乘除運算!

細細一想很快就可以大致構造出自己的**來:

這就是計算器 1.0 版本

/**

- @author wq

*/public class operation

return 0.00000000;//僅僅是自定義的表示錯誤的標識

}/**

* 測試

*/public static void main(string args)

}

但是呢,這個**看起來太擠了,而且和物件導向似乎有點不搭邊啊!對於物件導向的三大特性封裝,繼承,多型好像都沒有使用到,而且我們也沒有使用到簡單工廠模式啊!

於是,我們需要對這段**進行裝飾!

裝飾一下

我們首先明確一下對於簡單工廠模式來說的三個部分屬性:

計算器 1.0 版本**擠在了一起看起來太過於冗雜也不易於擴充套件,復用,所以我們有必要將其公升級為 計算器 2.0 版本

首先我們可以大致規劃一下基本的結構:

接著我們就開始搭建我們的工廠讓它開始生產產品!

計算器的搭建:

ps:這裡的抽象父類可以是抽象類也可以是乙個介面!此例子用抽象類實現!

/**

* @author wq

* 計算器抽象父類

*/public abstract class operation

/** * @author wq

* 加法運算部分

*/public class add extends operation

}/**

* @author wq

* 減法運算部分

*/public class substract extends operation

}/**

* @author wq

* 乘法部分

*/public class multiply extends operation

}/**

* @author wq

* 除法運算部分

*/public class divide extends operation catch (exception e)

}return getnum1() / getnum2();}}

實現了計算器我們就需要搭建工廠了,計算器部分的實現我們用到了封裝和繼承,而工廠我們就需要使用到多型啦!

/**

* @author wq

* 簡單工廠模式 依據不同的需求建立不同的物件

*/public class ******factory catch (exception e)

}return operation;}}

測試

給出測試的**:

/**

* 對簡單工廠模式的測試**

計算器 2.0 版本相對於計算器 1.0 版本是不是更加的清楚明了呢?是不是也看著更加高大上呢?

這就是簡單工廠模式的介紹啦!

設計模式 工廠模式之簡單工廠模式

定義 由乙個工廠物件 工廠類 來指定建立某乙個產品類的例項。使用場景 客戶端只需傳入指定的引數即可,工廠類負責建立的物件較少 因為指定了傳入的引數 介面類 本想用iphone命名的,見諒 public inte ce phone實現介面類 public class huaweiphone imple...

設計模式 工廠模式之簡單工廠

工廠模式可以分為 簡單工廠模式 普通工廠模式 靜態工廠模式 抽象工廠模式 簡單工廠模式 就是如何去例項化物件的問題,對於很容易變化的問題,應該考慮用乙個單獨的類來做這個創造例項的過程,這個單獨的類就是工廠 例子 通過簡單工廠建立各種圖形的實現過程 簡單工廠模式建立步驟 建立乙個介面 例 圖形介面 建...

設計模式 工廠模式之簡單工廠

我們常見的設計模式,大致可以分為三大類 建立型 結構性 行為型。工廠模式,屬於建立型。工廠模式到底起的是什麼作用呢?概括來說就是解耦。當某一類物件需要頻繁建立的時候,就會和程式產生比較大的耦合,在物件初始化屬性較多時,工廠模式可以較少這種耦合,這就是他的作用。一般情況下根據場景不同,工廠模式有幾種不...