工厂方法-模式

 /// <summary>
    /// 产品接口
    /// </summary>
    public interface ICar
    {
        void Travel();
    }

    /// <summary>
    /// 具体产品
    /// </summary>
    public class Lexus : ICar
    {
        public void Travel()
        {
            Console.WriteLine("I'm a lexus car, I'm traveling");
        }
    }

    /// <summary>
    /// 工厂接口
    /// </summary>
    public interface ICarFactory
    {
        ICar CreateCar();
    }

    /// <summary>
    /// 具体工厂类
    /// </summary>
    public class LexusFactory : ICarFactory
    {
        public ICar CreateCar()
        {
            return new Lexus();
        }
    }


    public class Client
    {
        private ICarFactory carFactory;
        public Client(ICarFactory carFactory)
        {
            this.carFactory = carFactory;
        }


        public void doSomething()
        {
            ICar car = carFactory.CreateCar();
            car.Travel();
            //to do something
        }
    }
static void Main(string[] args)
{
        Client client = new Client(new LexusFactory());
        client.doSomething();
 }

 

工厂方法(Factory Method)模式是在GOF提出的设计模式中有定义的,如下:为创建对象定义一个接口,让子类决定实例化哪个类,工厂方法让一个类的实例化延迟至子类。

我发现这个工厂方法模式和依赖注入很相似,不知道是这个例子偏向了依赖注入还是我的道行不够,先记录下来,留着以后找答案吧!

转自:http://www.cnblogs.com/xishuai/p/3527083.html

 

posted on 2014-06-08 21:27  忙碌ing  阅读(135)  评论(0)    收藏  举报

导航