设计模式之工厂方法配置文件与反射
Posted LBO.net
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之工厂方法配置文件与反射相关的知识,希望对你有一定的参考价值。
using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Text; using System.Configuration; using System.Reflection;//导入命名空间(记得在解决方案资源管理器里的“引用”中添加“System.Configuration”) //工厂方法模式实例--配置文件与反射 namespace Factory_event { class Program { static void Main(string[] args) { Console.WriteLine("工厂方法模式实例--配置文件与反射:"); LoggerFactory factory;//针对抽象工厂类编程 Logger logger; //针对抽象产品类编程 //读取配置文件 string factoryString = ConfigurationManager.AppSettings["factory"]; //反射生成对象 factory = (LoggerFactory)Assembly.Load("Factory_event").CreateInstance(factoryString); logger = factory.CreateLogger(); logger.WriteLog(); Console.Read(); /*总结: * 待续 */ } } /// <summary> /// 日志记录接口,充当抽象产品角色 /// </summary> internal interface Logger { void WriteLog(); } /// <summary> /// 数据库日志记录器,充当具体产品角色 /// </summary> class DatabaseLogger : Logger { public void WriteLog() { Console.WriteLine("数据库记录日志"); } } /// <summary> /// 文件日志记录器,充当具体产品角色 /// </summary> class FileLogger : Logger { public void WriteLog() { Console.WriteLine("文件日志记录"); } } /// <summary> /// 日志记录器工厂接口 /// </summary> internal interface LoggerFactory { Logger CreateLogger();//抽象工厂方法 } /// <summary> /// 数据库日志记录器工厂类,充当具体工厂角色 /// </summary> class DatabaseLoggerFactory : LoggerFactory { public Logger CreateLogger() { //连接数据库 //创建数据库日志记录对象 Logger logger = new DatabaseLogger(); //初始化数据库日志记录器 return logger; } } /// <summary> /// 文件日志记录器工厂类,充当具体工厂角色 /// </summary> class FileLoggerFactory : LoggerFactory { public Logger CreateLogger() { //创建日志记录器对象 Logger logger = new FileLogger(); //创建文件 //... return logger; } } }
App.config:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="factory" value="Factory_event.FileLoggerFactory"/> </appSettings> </configuration>
以上是关于设计模式之工厂方法配置文件与反射的主要内容,如果未能解决你的问题,请参考以下文章