实现代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DesignPattern { class Program { static void Main(string[] args) { FactoryCreator factoryCreator = new BlackCarFactoryMethod(); // FactoryCreator factoryCreator = new OriangeFactoryMethod(); factoryCreator._AuthCar().CreatorCar(); Console.ReadKey(); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DesignPattern { /// <summary> /// 工厂类 /// </summary> public abstract class FactoryCreator { /// <summary> /// 获取汽车对象 /// </summary> /// <returns></returns> public abstract AuthCar _AuthCar(); } /// <summary> /// 得到黑色汽车实例 /// </summary> public class BlackCarFactoryMethod : FactoryCreator { public override AuthCar _AuthCar() { return new _BlackCar(); } } /// <summary> /// 得到橘黄色汽车实例 /// </summary> public class OriangeFactoryMethod : FactoryCreator { public override AuthCar _AuthCar() { return new _OriangeCar(); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DesignPattern { /// <summary> /// 汽车抽象类 /// </summary> public abstract class AuthCar { /// <summary> /// 输出制造了什么汽车 /// </summary> public abstract void CreatorCar(); } /// <summary> /// 派生类-橘黄色轿车 /// </summary> public class _OriangeCar : AuthCar { public override void CreatorCar() { Console.WriteLine("生产了橘黄色轿车!"); } } /// <summary> /// 派生类-黑色轿车 /// </summary> public class _BlackCar : AuthCar { public override void CreatorCar() { Console.WriteLine("生产了黑色轿车"); } } }