首页 > 代码库 > 【2016-10-17】【坚持学习】【Day8】【工厂方法模式】
【2016-10-17】【坚持学习】【Day8】【工厂方法模式】
工厂方法模式又叫工厂模式,虚拟构造器模式
定义:
工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象
目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类
结构:
一个抽象产品类
多个具体产品类
一个抽象工厂类
多个具体工厂类
interface Product { } class ConcreteProduct : Product { } interface Factory { Product FactoryMethod(); } class ConcreteFactory : Factory { public Product FactoryMethod() { return new ConcreteProduct(); } }
例子:
interface LoggerFactory { Logger CreateLogger(); }
class FileLoggerFactory : LoggerFactory { public Logger CreateLogger() { //创建文件日志记录器对象 Logger logger = new FileLogger(); //创建文件,代码省略 return logger; } }
interface Logger { void WriteLog(); }
class FileLogger : Logger { public void WriteLog() { Console.WriteLine("文件日志记录。"); } }
LoggerFactory factory; Logger logger; //读取配置文件 string factoryString = ConfigurationManager.AppSettings["factory"]; //反射生成对象 factory = (LoggerFactory)Assembly.Load("FactoryMethodSample").CreateInstance(factoryString); logger = factory.CreateLogger(); logger.WriteLog();
【2016-10-17】【坚持学习】【Day8】【工厂方法模式】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。