实战才是王道:工厂模式、三层架构、反射、多数据库问题
2013-06-06 18:09
711 查看
无废话,先看结构图:
核心代码:
工厂来了(使用反射):
现在客户说了,软件不错,我们准备升级MSSQL版本,怎么办呢?
我们要做的就是增加MSSQL数据库的DAL层,然后修改APP.CONFIG配置文件
你可能只需要10分钟就能完成SQLITE到MSSQL数据库的升级,主要是修改一下不同数据库之间的语法问题。到这里你是否觉得很爽?
最后上代码,下载地址:http://files.cnblogs.com/AlexQY/WFA-Salary.zip,开发工具是VS2012+Sqlite,只提供雏形代码,项目还未完成,结构已经清晰了!
设计模式看了一堆,工厂模式看了一堆,有几个是真正理解并应用的?实战才是王道!
核心代码:
public interface IField { /// <summary> /// //通过SQL得到数据列表 /// </summary> /// <param name="cols">列名,可以用*</param> /// <param name="where">条件</param> /// <param name="orderBy">排序</param> /// <returns></returns> DataTable GetTable(string cols,string where,string orderBy); /// <summary> /// 根据主键删除数据 /// </summary> /// <param name="appid"></param> /// <returns></returns> bool Delete(string appid); }
public class FieldDal : DalBase, IField { public FieldDal() { this.TableName = "T_Fileds"; this.PkField = "AppId"; } }
public class FieldBll { private IField field = DalFactory.CreateField();//工厂创建对象 public DataTable GetTable(string cols, string where, string orderBy) { return field.GetTable(cols, where, orderBy); } public bool Delete(string appid) { return field.Delete(appid); } }
工厂来了(使用反射):
public sealed class DalFactory { private static readonly string DbType = ConfigurationManager.AppSettings["DbType"]; private static readonly string AssemblyPath = ConfigurationManager.AppSettings["DAL"]; public static IAdmin CreateAdmin() { IAdmin admin = (IAdmin)Assembly.Load(AssemblyPath).CreateInstance("Dals." + DbType + "Dal.AdminDal"); return admin; } public static IField CreateField() { IField admin = (IField)Assembly.Load(AssemblyPath).CreateInstance("Dals." + DbType + "Dal.FieldDal"); return admin; } }
现在客户说了,软件不错,我们准备升级MSSQL版本,怎么办呢?
我们要做的就是增加MSSQL数据库的DAL层,然后修改APP.CONFIG配置文件
你可能只需要10分钟就能完成SQLITE到MSSQL数据库的升级,主要是修改一下不同数据库之间的语法问题。到这里你是否觉得很爽?
最后上代码,下载地址:http://files.cnblogs.com/AlexQY/WFA-Salary.zip,开发工具是VS2012+Sqlite,只提供雏形代码,项目还未完成,结构已经清晰了!
设计模式看了一堆,工厂模式看了一堆,有几个是真正理解并应用的?实战才是王道!
相关文章推荐
- 面向接口编程在Java web 三层架构的应用与使用工厂模式解决问题
- 面向接口编程在Java web 三层架构的应用与使用工厂模式解决问题
- 三层架构之抽象工厂加反射——实现数据库转换
- 三层架构之抽象工厂加反射----实现数据库转换
- 三层架构之抽象工厂加反射----实现数据库转换
- 三层架构之抽象工厂加反射----实现数据库转换
- asp.net mvc中自行搭建实现工厂模式的spring.net+三层架构 (15-4-20)
- 三层架构下反射出的问题
- asp.net mvc中自行搭建实现工厂模式的spring.net+三层架构 (15-4-20)
- C#写Facotry解析.Net的反射和Attribute (数据库工厂的架构)
- 网络层架构设计与实战六客户端设计之工厂模式封装httpRequest
- Delphi数据库的三层架构的问题和解决方法
- Java中利用反射的思想解决工厂设计模式的耦合问题
- 关于三层架构,MVC模型,工厂设计模式三者 .
- 运用反射原理的简单工厂模式和运用反射原理从数据库里读出数据直接封装到实体集合里
- DAO模式的组成、软件系统的三层架构、连接数据库的步骤
- SqlHelper简单实现(通过Expression和反射)6.Providor模式(工厂+策略)可配置数据库选择
- 工厂支持多数据库开发的三层结构模式随笔(一)
- C#实战反射、事件、抽象工厂、发布订阅模式
- 三层架构,反射工厂(超强合成山寨版!)