C#工厂设计模式
工厂方法模式之所以可以解决简单工厂的模式,是因为它的实现把具体产品的创建推迟到子类中,此时工厂类不再负责所有产品的创建,而只是给出具体工厂必须实现的接口,这样工厂方法模式就可以允许系统不修改工厂类逻辑的情况下来添加新产品,这样也就克服了简单工厂模式中缺点。
namespace Eventlearn { class Program { public static void Main() { TVFactory tvA = new AFactory();//子类给父类 tvA.BuildTV().Create(); Console.ReadKey(); } } //创建一个工厂模式(抽象类) public abstract class TVFactory { public abstract TV BuildTV(); } //具体工厂A类 public class AFactory : TVFactory { public override TV BuildTV() { return new TVA(); } } //产品抽象类 public abstract class TV { public abstract void Create(); } 具体产品A类 public class TVA : TV { public override void Create() { Console.WriteLine ("Create a TV of A"); } } //具体工厂B类 public class BFactory : TVFactory { public override TV BuildTV() { return new TVB(); } } //具体产品B类 public class TVB : TV { public override void Create() { Console.WriteLine("Create a product of B"); } } }