工厂方法-模式
/// <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
浙公网安备 33010602011771号