在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
【原创作者】:丛兴滋(cncxz)[E-mail:[email protected]] 假设你要做个会员管理系统,分为SQL、XML和Access三种版本,希望通过修改配置文件中一个参数来完成版本切换,而目前你又对这种切换的实现存有疑惑,建议你继续阅读,本文说明了“一个接口、三个实现、一个代理类结合配置文件实现SQL、XML、Access数据源切换”的一种方法。 下面以会员管理系统的单位管理为例,说一下这种方法: 1、首先定义一个接口IDeptManage,代码如下: //接口IDeptManage void ItemCreate(string strGuid,string strShortName,string strFullName,string strParentGuid); void ItemRemove(string strGuid); void ItemUpdate(string strGuid,string strShortName,string strFullName); string test();//测试用 2、然后写三个互相独立的实现类,DeptManage_Sql、DeptManage_Xml、DeptManage_Access,代码如下: //类DeptManage_Sql,用SQL的实现 } } } public string test() } //类DeptManage_Xml,用XML的实现 } } } public string test() } //类DeptManage_Access,用Access的实现 } } } public string test() } 以前的时候,都是用 IDeptManage myClass=new DeptManage_Sql()跟IDeptManage myClass=new DeptManage_Xml()来实现调用,这在使用中似乎也没有什么不妥,可是一旦需要切换(假设要把Sql的换成Xml),就麻烦了,需要到处修改代码,现在我要做的就是把这些在切换时需要调整的部分集中起来,达到简单地调整一处代码就完成切换工作的目的。 3、其实实现起来非常简单,只要在调用者和调用源中间补上一个中介人实现解耦就可以了,这里定义一个名为Agent的代理类,代码如下: public class Agent public static IDeptManage CreateDeptMange(){ case 2: } 以后调用的时候改用IDeptManage myManage= Agent.CreateDeptMange()就可以了,想切换的时候修改Agent类中的DataType即可。
另外,文章发布可能会有修改的地方,blog上是最新的。 Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=526057 |
请发表评论