标签: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