工厂方法(Factory )
总述:
在工厂方法中,工厂类成了抽象类其实际的创建工作将由其具体子类子类来完成。
工厂方法的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中去,强调的是“单个对象”的变化。
在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。
如何应对这种变化?提供一种封装机制来隔离出“这个易变对象”的变化,从而保持系统中“其他依赖该对象的对象”不随着需求的改变而改变。
意图:定义一个用户创建对象的接口,让子类决定实例化哪一个类。
工厂方法模式使一个类的实例化延迟到其子类。

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication18 { class Program { static void Main(string[] args) { } } public interface ICar { void run(); } public class BMWCar : ICar { public void run() { Console.WriteLine("BMWCar run"); } } public class BenzCar : ICar { public void run() { Console.WriteLine("BenzCar run"); } } public abstract class Driver { public abstract ICar DriverCar(); } public class BMWDriver : Driver { public override ICar DriverCar() { return new BMWCar(); } } public class BenzDriver : Driver { public override ICar DriverCar() { return new BenzCar(); } } }

浙公网安备 33010602011771号