关于电子商务软件中“简单工厂模式”的使用(1)

在看过TerryLee大哥的设计模式后,受益非浅,自己也想上来写点什么东西
刚好这次在开发过程中发现“简单工厂模式”使用的比较多,把自己的应用心得写出来跟大家分享一下,如果有什么不对的地方请大家多多指教

其实这是一个关于多数据库操作的实现方式,软件要兼容多数据库,目前是使用ACCESS和SQL2005数据库
但是以后可能要采用MYSQL或者全存储过程版,所以就采用了一个简单工厂来做数据访问,工厂代码如下
public class DatabaseProvider 
    
{
        
public static IDataProvider GetInstance()
        
{
            
try
            
{
                
return (IDataProvider)Activator.CreateInstance(Type.GetType(string.Format("V5Shop.Data.{0}.DataProvider, V5Shop.Data.{0}", BaseConfigs.GetDbType), falsetrue));
            }

            
catch
            
{
                utils.ShowErrorPage(
"请检查V5Shop.config中Dbtype节点数据库类型是否正确,例如:SqlServer、Access、MySql,当前的设置为-" + BaseConfigs.GetDbType);
                
return null;
            }

        }

    }
首先声明一个接口
namespace V5Shop.Data
{
    
public partial interface IDataProvider
    
{
/// <summary>
/// 根据ID号删除对应广告类别
/// </summary>
/// <param name="ids">ID号集合</param>
/// <returns></returns>

int DeleteAdsCategory(string ids);
    }

}

这里是继承了这个接口的实例
namespace V5Shop.Data.MsSql
{
    
public partial class DataProvider : IDataProvider
    
{
        
public int DeleteAdsCategory(string ids)
        
{
            
string sql = "DELETE FROM Web_AdsCategory WHERE id IN (" + ids + ")";
            
return DbHelper.ExecuteNonQuery(sql);
        }

    }

}
这样在数据调用的时候只需要使用接口中的方法
string ids = this.CheckedIDS.Value;
DatabaseProvider.GetInstanc().DeleteAdsCategory(ids);
便可以进行数据操作,并且以后如果要更改数据操作类的时候只需要更改CONFIG文件就可以起到更改数据操作类的作用了
这个一个简单工厂模式就实现了

底层的数据操作是基于EnterpriseLibrary的数据操作类,速度还不错

头一次写文章,感觉还挺难的,可能写的比较粗浅,以后我会继续努力的!
*************************************************************************************************

在大家的批评之下,我发现其实这个还是个简单工厂,先对大家说声,对不起了

posted on 2008-06-05 12:51  吕鑫  阅读(2628)  评论(13编辑  收藏  举报

导航