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

工厂模式

时间:2017-11-28 19:54:49      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:4.0   ring   节点   read   create   类的方法   设计模式   strong   key   

工厂模式是我们最常用的实例化对象模式,用工厂的方法来代替使用new关键字对对象进行操作

注:一种设计模式只能解决一类问题

工厂模式的设计思想就是为了解耦,将面向细节(对象,类)的思想转换为面向抽象(接口)来编程

 

简单工厂

即将创建对象的过程放到一个工厂类里来完成,聚集耦合到工厂中,降低前端与后端的耦合度。

缺点:违背了单一原则

1、普通的面向细节编程                          Object obj = new Object()
2、使用接口继承                                Interface obj = new Object()
3、创建一个新类(Factory),该类方法用于new 细节    Interface obj = new Factory.createClass
4、在Factory类的方法中加上参数,可以new各种细节     Interface obj = new Factory.createClass(type t)

简单工厂+配置文件  通过读取配置文件来动态调用工厂的生产,实现可配置性

如何读取配置文件信息?

  添加引用:System.Configuration
        在app.config文件中添加节点---<appSettings><add key="XXX" value="readInfo"></appSettings>
        string readInfo = ConfigurationManager.AppSettions["XXX"];

简单工厂+配置文件+反射

  在app.config文件中添加节点---<appSettings><add key="XXX" value="assemblyName,typeName"></appSettings>
        读取配置文件:
            string readInfo = ConfigurationManager.AppSettions["XXX"];
            string readInfo = ConfigurationManager.AppSettions["XXX"];
            string assemblyName = readInfo.split(‘,‘)[0];
            string typeName = readInfo.split(‘,‘)[1];
        创建对象并调用构造函数Activator.CreateInstance(assemblyName,typeName).Unwrap();

可配置性和可扩展性(扩展工厂的职责)

  增加时不用修改原有的Factory,只需要在外面添加dll文件引用,在配置文件中做修改即可 

  符合开闭原则(对扩展开放,对修改封闭)

工厂方法

  有的时候创建一个类需要多层逻辑,或者创建该类时有某些个性化需求,或者多个复杂对象的相互操作。因此,    
  单一职责: 为一个类的实例过程(构造函数)创建一个工厂,只用于造出这一个类。推迟类的创建,也为了创建出个性化的类

  工厂模式在实际应用中很少见,但也有,例:

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config中的<HTTPHandle>有应用

抽象工厂

  将工厂的实现改为抽象类,扩展时继承抽象类,实现抽象方法,从而实现工厂的可扩展性
     扩展性:扩展其他类,即产品级的扩展,但不能扩展工厂的职责

 

工厂模式

标签:4.0   ring   节点   read   create   类的方法   设计模式   strong   key   

原文地址:http://www.cnblogs.com/wuxiangfeng/p/7911344.html

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