簡單工廠模式有一個缺點,就是增加子類的時候,需要修改工廠類裡的switch。工廠方法模式可以優化簡單工廠模式的這個缺點。
UML圖:
示例代碼:public interface ICar
{
string GuaDang();
}
public class ShouDong:ICar
{
public string GuaDang()
{
return "我是手動擋";
}
}
public class ZiDong:ICar
{
public string GuaDang()
{
return "我是自動擋";
}
}
public interface ICarFactory
{
ICar GetCar();
}
class ShouDongFactory:ICarFactory
{
public ICar GetCar()
{
return new ShouDong();
}
}
public class ZiDongFactory:ICarFactory
{
public ICar GetCar()
{
return new ZiDong();
}
}
class Program
{
static void Main(string[] args)
{
ICarFactory fac = new ShouDongFactory();
Console.WriteLine(fac.GetCar().GuaDang());
ICarFactory facA = new ZiDongFactory();
Console.WriteLine(facA.GetCar().GuaDang());
}
}