工廠方法模式

2022-02-15 01:23:04 字數 1975 閱讀 6163

定義:把具體產品的建立推遲到子類中,工廠類不再負責所有產品的建立,而只是給出具體工廠必須實現的介面,由產品工廠類來繼承實現。

優點:工廠方法模式通過物件導向程式設計中的多型性來將物件的建立延遲到具體工廠中,從而解決了簡單工廠模式中存在的問題,也很好地符合

了開放封閉原則(即對擴充套件開發,對修改封閉)。

關鍵點:乙個抽象產品基類、乙個抽象工廠基類、多個產品子類、多個產品工廠子類。

適用場景:可適用於大部分業務需求。

示例:

#region 抽象基類

//////抽象產品基類

/// public

abstract

class

transportationex

//////

抽象工廠基類

/// public

abstract

class

factorycreator

#endregion

#region 產品子類

//////地鐵

/// public

class

bymetroex:transportationex

}//////

ofo

/// public

class

byofoex:transportationex

}//////

走路

/// public

class

onfootex:transportationex

}#endregion

#region 產品工廠類

//////地鐵工廠類

/// public

class

metrofactory:factorycreator

}//////

ofo工廠類

/// public

class

ofofactory:factorycreator

}//////

走路工廠類

/// public

class

onfootfactory:factorycreator

}#endregion

呼叫

#region 工廠方法模式console.writeline(

"【工廠方法模式】");

console.writeline();

console.writeline(

"出行方式:");

console.writeline();

factorycreator fc1 = new

metrofactory();

console.writeline(fc1.gettransportmethod().transportmethod());

console.writeline();

factorycreator fc2 = new

ofofactory();

console.writeline(fc2.gettransportmethod().transportmethod());

console.writeline();

factorycreator fc3 = new

onfootfactory();

console.writeline(fc3.gettransportmethod().transportmethod());

console.writeline();

console.readline();

#endregion

輸出:

工廠方法模式 工廠方法模式

工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...

工廠方法模式 工廠方法模式 二

工廠方法模式是對簡單工廠的進一步抽象和封裝,需要新的類物件時不需要對既有工廠類進行修改,而是增加新的工廠類。工程類可以使用模版進一步封裝,由編譯器來生成 從而減少 編寫工作量。工廠方法的 c 實現01part產品抽象基類class animal virtual void show 0 02part產...

工廠方法模式(一) 簡單工廠方法模式

ps 第二篇學習部落格,堅持就是勝利。繼續設計模式的學習,記錄工廠模式,加深自己的理解。基本結構 abstractproduct 用來定義基本的商品的抽象 public abstract class abstractphoneproduct 用來實現抽象商品,生成各種商品 public class ...