设计模式——工厂模式
工厂模式:屏蔽细节,降低耦合性
普通创建对象
//new 关键字其实是创建对象的细节 IRace human = new Human(); //2.面向抽象了 human.ShowKing();
如果构造函数变了,对应创建的地方必须相应改变,直接依赖于对象
简单工厂:
/// <summary> /// 简单工厂 /// </summary> public class ObjectFactory { public static IRace CreateInstance() { return new Human(); } }
代工生成对象,对象怎么创建工厂,最上端的不用知道
深度扩展:比如你最开始使用的数据库是sqlserver后面换成mysql。就可以利用工厂模式:反射+配置文件,动态生产底层对象,而上乘对象的调用不会受到影响
工厂方法模式:可以动态创建
//支持了工厂的扩展! //不同类型的创建,可以通过工厂的扩展===增加工厂来完成 //1.创建Human---HumanFactory IFactory factory = new HumanFactory();//包一层 IRace race = factory.CreateRace();