從設計模式的型別上來說,簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法(static factory method)模式,簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。
簡單工廠模式的實質是由乙個工廠類根據傳入的引數,動態決定應該建立哪乙個產品類(這些產品類繼承自乙個父類或介面)的例項。
該模式中包含的角色及其職責:
工廠(creator)角色
簡單工廠模式的核心,它負責實現建立所有例項的內部邏輯。工廠類可以被外界直接呼叫,建立所需的產品物件。
抽象產品(product)角色
簡單工廠模式所建立的所有物件的父類,它負責描述所有例項所共有的公共介面。
具體產品(concrete product)角色
是簡單工廠模式的建立目標,所有建立的物件都是充當這個角色的某個具體類的例項。
下面是乙個簡單工廠模式的例子,它要求使用者輸入乙個品牌然後由工廠生產並輸出:
首先,我宣告乙個父類notebook類,它用abstract修飾,含有乙個自動屬性brand,和乙個抽象方法。
其次,宣告四個子類都繼承於notebook這個父類,而且showbrand()方法都用override修飾。
然後,我們可以定義乙個方法,用來接收牌子,並返回給工廠。值得注意的是此方法的返回值型別是notebook。
黑馬程式設計師 設計模式
一 設計模式概述 1 設計模式概念 我們專案中有很多相同的東西,我們把這些相同的東西抽取出來 符合某種規則,這個稱為設計模式。二 簡單工廠模式 1 如果有寫完乙個類不想讓其他人建立這個類的物件怎麼辦?第一種把構造私有化 第二種定義抽象類 2 物件導向的設計原則?對修改關閉,對擴充套件開放 三 工廠方...
黑馬程式設計師 設計模式
第一講 設計模式 1.設計模式概述 設計模式 design pattern 是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。使用設計模式是為了可重用 讓 更容易被他人理解 保證 可靠性。2.物件導向思想設計原則 在實際的開發中,我們要想更深入的了解物件導向思想,就必須熟悉前人總結過的...
遊戲程式的設計模式 工廠模式
最近打算翻譯一些外國的文章,既長見識,有練習了英語,真是一石二鳥,一舉兩得,一箭雙鵰。下面就是第一篇 動機 我在一些技術 訪談中發現,很多公司在尋找擁有 strong cs fundamental 的職員。我並不是很明白這樣做的具體含義,但是我知道他們會問什麼樣的問題 經常它會是 寫乙個快速排序的函...