簡單工廠模式(Simple Factory Pattern)屬于創(chuàng)建型模式,它定義了一個創(chuàng)建對象的類,由這個類來封裝實例化對象的行為。在簡單工廠模式中,可以根據(jù)參數(shù)的不同返回不同類的實例。簡單工廠模式專門定義一個類來負責創(chuàng)建其他類的實例,被創(chuàng)建的實例通常具有共同的父類。
一、簡單工廠模式的結構
簡單工廠模式主要包含以下角色:
工廠類(Creator):這是簡單工廠模式的核心,它負責實現(xiàn)創(chuàng)建所有實例的內部邏輯。工廠類可以被外界直接調用,創(chuàng)建所需的產品對象。
抽象產品類(Product):簡單工廠模式所創(chuàng)建的所有對象的父類,它負責描述所有實例所共有的公共接口。
具體產品類(Concrete Product):簡單工廠模式的創(chuàng)建目標,所有創(chuàng)建的對象都是充當這個角色的某個具體類的實例。
二、簡單工廠模式的實現(xiàn)
下面通過C#代碼示例來演示簡單工廠模式的實現(xiàn):
public interface IProduct
{
void Show();
}
public class ConcreteProductA : IProduct
{
public void Show()
{
Console.WriteLine("This is Product A");
}
}
public class ConcreteProductB : IProduct
{
public void Show()
{
Console.WriteLine("This is Product B");
}
}
public class SimpleFactory
{
public static IProduct CreateProduct(string type)
{
switch (type)
{
case "A":
return new ConcreteProductA();
case "B":
return new ConcreteProductB();
default:
throw new ArgumentException("Unknown product type");
}
}
}
class Program
{
static void Main(string[] args)
{
IProduct productA = SimpleFactory.CreateProduct("A");
productA.Show();
IProduct productB = SimpleFactory.CreateProduct("B");
productB.Show();
}
}
三、簡單工廠模式的優(yōu)缺點
優(yōu)點:
- 工廠類含有必要的判斷邏輯,可以決定在什么時候創(chuàng)建哪一個產品類的實例,客戶端可以免除直接創(chuàng)建產品對象的責任,而僅僅“消費”產品。簡單工廠模式通過這種做法實現(xiàn)了對責任的分割。
- 客戶端無須知道所創(chuàng)建的具體產品類的類名,只需要知道具體產品類所對應的參數(shù)即可。
- 通過引入配置文件,可以在不修改任何客戶端代碼的情況下更換和增加新的具體產品類,在一定程度上提高了系統(tǒng)的靈活性。
缺點:
- 由于工廠類集中了所有產品創(chuàng)建邏輯,一旦不能正常工作,整個系統(tǒng)都要受到影響。
- 使用簡單工廠模式將會增加系統(tǒng)中類的個數(shù),在一定程序上增加了系統(tǒng)的復雜度和理解難度。
- 系統(tǒng)擴展困難,一旦添加新產品就不得不修改工廠邏輯,在產品類型較多時,有可能造成工廠邏輯過于復雜,不利于系統(tǒng)的擴展和維護。
簡單工廠模式作為一種簡單且實用的創(chuàng)建型模式,在軟件開發(fā)中得到了廣泛的應用,特別是當系統(tǒng)中只需要一個工廠類或者系統(tǒng)中只需要創(chuàng)建少量對象時,使用簡單工廠模式可以大大簡化系統(tǒng)的實現(xiàn),提高系統(tǒng)的可維護性和靈活性。
該文章在 2024/7/18 16:37:38 編輯過