工厂方法模式(Factory Method Pattern)-创造类
工厂方法模式(Factory Method Pattern)-创造类
描述:定义一个用于创建对象的接口,让子类决定实例化那一个类。工厂方法模式使一个类的实例化延迟到子类。

//抽象工厂类 public abstract class Creator { public abstract Product FactoryMethod(string className); } //具体工厂类 public class ConcreteCreator : Creator { public override Product FactoryMethod(string className) { switch (className) { case "ConcreteProduct": return new ConcreteProduct(); case "ConcreteProduct2": return new ConcreteProduct2(); } return null; } } //抽象产品类 public abstract class Product { public void method1() { //业务逻辑处理 } //抽象方法 public abstract void method2(); } //具体产品类 public class ConcreteProduct : Product { public override void method2() { //业务逻辑处理 } } //具体产品类2 public class ConcreteProduct2 : Product { public override void method2() { //业务逻辑处理 } }
单例模式+工厂模式
public class ConcreteCreator2<T> { private static Dictionary<string, T> dic = new Dictionary<string, T>(); public static T FactoryMenthod() { string className = typeof(T).FullName; if (!dic.ContainsKey(className)) { try { var newEntity = Activator.CreateInstance<T>(); dic.Add(className, (T)newEntity); } catch (Exception ex) { } } return dic[className]; } }

浙公网安备 33010602011771号