天天看點

工廠方法模式

簡單工廠模式有一個缺點,就是增加子類的時候,需要修改工廠類裡的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());
        }
    }      
下一篇: IIS并發