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

Posted zscmj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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工厂方法模式的主要内容,如果未能解决你的问题,请参考以下文章

2016-10-17坚持学习Day8抽象工厂模式

坚持Selenium+Python学习记录 DAY8

2016-10-14坚持学习Day5单例模式

python学习笔记-Day8 下 (特殊方法iter方法super方法有序字典实现python单例模式)

学习笔记Spring中常用的设计模式

#yyds干货盘点# js学习笔记四十复杂工厂模式