天天看点

工厂方法模式

简单工厂模式有一个缺点,就是增加子类的时候,需要修改工厂类里的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并发