码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之工厂方法配置文件与反射

时间:2017-07-11 14:37:13      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:app   方法   配置   管理   产品   ogr   []   解决方案   ati   

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>

 

设计模式之工厂方法配置文件与反射

标签:app   方法   配置   管理   产品   ogr   []   解决方案   ati   

原文地址:http://www.cnblogs.com/lbonet/p/7150054.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!