工廠方法模式是類的建立模式,其用意是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類中。
工廠方法是簡單工廠進一步的抽象和推廣。由於使用了多型性,工廠方法模式保持了簡單工廠模式的優點,而且克服了它的缺點。
在工廠方法模式中,核心的工廠類不在負責所有產品的建立,而是將具體建立工作交給子類來完成。這個核心類僅僅負責人給吃具體工廠必須實現的介面,而不接觸哪乙個產品類被例項化這種細節。這使得工廠模式可以允許在不修改工廠角色的情況下引進新產品。
抽象工廠:是工廠方法模式的核心,與應用程式無關。任何模式中建立的物件的工廠類必須實現這個介面。
抽象產品:工廠方法模式所建立的物件的超型別,也就是產品物件的共同父類或者共同擁有的介面。
具體產品:這個角色實現抽象產品所定義的介面。某具體產品有專門的具體工廠建立。它們之間往往一一對應。
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
namespace _8factorymethod
}/// /// 抽象父類 球類
///
public abstract class ball
/// /// 籃球類 實現抽象父類中的showball方法
///
public class baseketball : ball
}/// /// 足球類 實現抽象父類中的showball方法
///
public class football : ball
}/// /// 桌球類 實現抽象父類中的showball方法
///
public class pingpangbll : ball
}/// /// 抽象工廠類 定義生產方法
///
public abstract class creator
/// /// 籃球工廠
///
public class basketballfactory : creator
}/// /// 足球工廠類
///
public class footballfactory : creator
}/// /// 桌球工廠類
///
public class pingpangballfactory : creator
}}/*output:
我是籃球
我是足球
我是桌球
*/
C 設計模式 工廠方法
定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法 factory method 使乙個類的例項化延遲到其子類。也叫虛構造器 virtual constructor 結構 理解 1.product 是工廠方法生產產品的抽象基類。2.creator 是生產產品的工廠物件抽象基類。cr...
C 設計模式 工廠方法
定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法 factory method 使乙個類的例項化延遲到其子類。也叫虛構造器 virtual constructor 結構 理解 1.product 是工廠方法生產產品的抽象基類。2.creator 是生產產品的工廠物件抽象基類。cr...
C 設計模式 工廠方法模式
問題描述 之前講到了c 設計模式 簡單工廠模式,由於簡單工廠模式的侷限性,比如 工廠現在能生產producta productb和productc三種產品了,此時,需要增加生產productd產品 那麼,首先是不是需要在產品列舉型別中新增新的產品型別標識,然後,修改factory類中的switch結...