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

【2016-10-17】【坚持学习】【Day8】【工厂方法模式】

时间:2016-10-18 01:50:58      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

工厂方法模式又叫工厂模式,虚拟构造器模式

定义:

技术分享

工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象
目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类

 

结构:

一个抽象产品类

多个具体产品类

一个抽象工厂类

多个具体工厂类

技术分享

 

 

  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】【工厂方法模式】

标签:

原文地址:http://www.cnblogs.com/zscmj/p/5971630.html

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