簡單工廠模式

2021-07-11 18:21:32 字數 1087 閱讀 8321

1.引入: 我們在程式設計的時候,每當」new」乙個物件之後,這個物件就依賴於這個類了。如果在後期的維護過程中由於某些原因需要修改一下這個類,則唯一的做法就是開啟源**,進行修改,修改所有與這個物件有關的操作。這對我們是非常不利的。

問題出來了:物件不能應對「具體例項化型別」的變化

2.解決思路:將例項化這個操作封裝起來,我們可以把」new」這個操作移交乙個具體的類,由它去負責根據我們的條件建立具體類的例項,也就是下面要說的「簡單工廠模式」。

3.簡單工廠模式的定義:

提供乙個建立物件例項的功能,而無須關係其具體實現。被建立例項的型別可以是介面、抽象類,也可以是具體的類。

4.簡單工廠模式的組成:

工廠角色(creator):是簡單工廠模式的核心,它負責實現建立所有具體產品類的例項。工廠類可以被外界直接呼叫,建立所需的產品物件。

抽象產品角色(product):是所有具體產品角色的父類,它負責描述所有例項所共有的公共介面。

具體產品角色(concrete product):繼承自抽象產品角色,一般為多個,是簡單工廠模式的建立目標。工廠類返回的都是該角色的某一具體產品。

5.具體**實現如下:(簡單的例子)

a.先寫乙個汽車的介面;

inte***ce car

public void stop()
}

public class ford implements car

public void stop()
c.工廠角色: 現在由工廠來建立 物件.根據條件來建立.

public class factory else if (「ford」.equals(type))

return c; } }

d.測試類,三種都行,這裡所講的簡單工廠模式是第三種方式,這是一種很好的設計思維,在這個基礎上可以拓展更多,對初學者來說是一種啟發。
public class test }

執行結果:

工廠模式 簡單工廠

簡單工廠其實並不是乙個設計模式,反而比較像一種程式設計習慣。我個人的這樣總結簡單工廠 建立乙個類,封裝建立物件的 故事 現在我要開一家披薩店,叫bbk 必敗客 披薩,賣很多種披薩 芝士披薩 榴蓮披薩等等,我有乙個orderpizza string type 方法,根據客戶傳來的type來提供不同的披...

工廠模式 簡單工廠

工廠 處理建立物件的細節。目的 將例項化具體類的 從應用中抽離,或者封裝起來,可以避免干擾應用的其他部分。簡單工廠 簡單工廠其實不是乙個設計模式,反而像一種程式設計習慣。產品實現 desc 產品a public inte ce a class a1 implements a override pub...

簡單工廠模式,工廠模式,抽象工廠模式

三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...