工厂方法+配置文件+反射
2010-08-15 13:02
357 查看
1.通过配置+反射,可以实现“开放封闭”原则,对扩展开放,对修改封闭。
2.易维护,通过分层,将程序进行分层,进行职责划分。
3.可用性提高。单独维护一个DLL文件即可。可以实现插拔操作。
工厂方法+配置文件+反射,主要是一种思路的体现,通过这种方式可以扩展我们的思维方式。
1.Yang.ISQL
数据库操作的接口,作为Yang.MSSQL、Yang.Oracle的标准,所有在业务逻辑层的调用全部使用这个接口。
2.Yang.MSSQL
实现Yang.ISQL,实现MSSql的数据库插入、修改、查询,等操作。
3.Yang.Oracle
实现Yang.ISQL,实现Oracle的数据库插入、修改、查询,等操作。
4.Yang.Model
模型、实体层,所有的数据操作都是通过实体来进行操作。
5.Yang.Configuration
配置文件。主要实现方法配置文件的作用,可以参考:自定义配置文件读取
6.AbstractFactory
测试,实用。
配置文件:
调用,使用:
配置调用数据,反射创建实体,接口调用(规范化)。
下载源代码:文件下载
2.易维护,通过分层,将程序进行分层,进行职责划分。
3.可用性提高。单独维护一个DLL文件即可。可以实现插拔操作。
工厂方法+配置文件+反射,主要是一种思路的体现,通过这种方式可以扩展我们的思维方式。
1.Yang.ISQL
数据库操作的接口,作为Yang.MSSQL、Yang.Oracle的标准,所有在业务逻辑层的调用全部使用这个接口。
using Yang.Model; namespace Yang.ISQL { public interface IOrder { string Add(Order entity); string Update(Order entity); } }
2.Yang.MSSQL
实现Yang.ISQL,实现MSSql的数据库插入、修改、查询,等操作。
using Yang.ISQL; using Yang.Model; namespace Yang.MSSQL { public class OrderBO : IOrder { public string Add(Order entity) { return "插入 MSSQL" + entity.OrderNO + ";" + entity.TotalMoney; } public string Update(Order entity) { return "更新 MSSQL" + entity.OrderNO + ";" + entity.TotalMoney; } } }
3.Yang.Oracle
实现Yang.ISQL,实现Oracle的数据库插入、修改、查询,等操作。
using Yang.ISQL; using Yang.Model; namespace Yang.Oracle { public class OrderBO : IOrder { public string Add(Order entity) { return "插入 Oracle" + entity.OrderNO + ";" + entity.TotalMoney; } public string Update(Order entity) { return "更新 Oracle" + entity.OrderNO + ";" + entity.TotalMoney; } } }
4.Yang.Model
模型、实体层,所有的数据操作都是通过实体来进行操作。
using System; namespace Yang.Model { public class Order { public string OrderNO { get; set; } public decimal TotalMoney { get; set; } public DateTime AddDateTime { get; set; } } }
5.Yang.Configuration
配置文件。主要实现方法配置文件的作用,可以参考:自定义配置文件读取
6.AbstractFactory
测试,实用。
配置文件:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="PersistenceSection" type="Yang.Configuration.PersistenceProperty, Yang.Configuration"/> </configSections> <PersistenceSection> <Persistences> <Persistence PropertyName="Order" PropertyValue="Yang.MSSQL.OrderBO, Yang.MSSQL" ></Persistence> <Persistence PropertyName="Customer" PropertyValue="Yang.Oracle.CustomerBO, Yang.Oracle"></Persistence> </Persistences> </PersistenceSection> </configuration>
调用,使用:
[Test] public void Test2() { var customer = new Customer {CustomerNO = "c001", FullName = "杨"}; var order = new Order {OrderNO = "D001", TotalMoney = 20.55m}; var sql = IOrderMSSQL; sql.Add(order); var orcale = ICustomerOrcale; orcale.Add(customer); } private IOrder IOrderMSSQL { get { PersistenceProperty property = (PersistenceProperty) ConfigurationManager.GetSection(ConfigName.PersistenceSection); PersistenceElementCollenction collection = property.GetElementCollection; var item = collection["Order"]; string clasName = item.EntityClass; var type = Type.GetType(clasName); return Activator.CreateInstance(type) as IOrder; } } private ICustomer ICustomerOrcale { get { PersistenceProperty property = (PersistenceProperty)ConfigurationManager.GetSection(ConfigName.PersistenceSection); PersistenceElementCollenction collection = property.GetElementCollection; var item = collection["Customer"]; string clasName = item.EntityClass; var type = Type.GetType(clasName); return Activator.CreateInstance(type) as ICustomer; } }
配置调用数据,反射创建实体,接口调用(规范化)。
下载源代码:文件下载
相关文章推荐
- 设计模式之工厂方法配置文件与反射
- Java反射 配置文件 工厂方法综合实例
- Java中工厂、配置文件和反射学习
- objective c实现配置文件+反射 工厂创建
- 三层架构实现登录(工厂+反射+配置文件)
- 反射示例1:通过配置文件运行类中的方法
- Java中工厂、配置文件和反射学习
- 反射应用,通过配置文件引用类中的方法
- java中Property类配置文件,反射创建实例并调用这个类的方法
- 厂方法模式(三):日志记录器的工厂方法模式解决方案,反射与配置文件
- 300.33通过读取配置文件方式来使用反射完成实例对象调用方法
- 设计模式学习之简单工厂+反射+配置文件
- 设计模式之1.1 再谈反射 以及java当中通过配置文件得到类名字,并生成对象的方法
- java反射调用配置文件构造类对象,使用其方法
- java使用dom4j解析xml配置文件实现抽象工厂反射示例
- 工厂方法模式-Factory Method Pattern 工厂三兄弟之工厂方法模式(三):日志记录器的工厂方法模式解决方案,反射与配置文件
- 09_通过读取配置文件的方式来使用反射完成对实例对象方法调用
- 第三节:工厂+反射+配置文件(手写IOC)对缓存进行管理。
- 配置文件+反射+简单工厂
- 反射机制与配置文件结合的工厂设计模式