下面用工厂模型来实现一个连接数据库的例子。实现在不改变代码的前提下,只通过修改相应的配置文件,就可以达到连接SQL Server和Access的目的。
在现实情况中,我们经常遇到同一个程序,在不同的地方要连接不同数据库的问题。为此,我们传统做法是把所有的代码都写在程序中,用if else做判断,然后再选择要连接的数据库。
下面的程序使用工厂模型的概念,利用接口来实现在不改变代码的前提下,只需改动相应的配置文件,就可以达到切换数据库的目的。而且在连接未知数据库时,也不需要改原代码,只需要扩展接口实现类.
说明:示例共有五个文件。
ISQLHelper.cs是定义数据访问接口文件。里面定义了两个数据访问方法:GetData()和SetData()
SQLSever.cs继承ISQLHelper接口,实现接口方法
Access.cs继承ISQLHelper接口,实现接口方法
SQLFactory.cs是工厂类,根据配置文件动态创建SQLServer或是Access
App.config是配置文件,定义本地程序需要用哪种数据库连接
调用代码
大家已经注意到了,调用代码里面都是面向接口编程的,所以只要接口稳定,那么程序的升级或是改动也就是稳定的。
情况一,修改Access的某个访问方法:只需要改Access里面的代码,不需要改主程序的任何地方。
情况二,增加对MySql的支持:只需要增加一个MySql.cs,继承ISQLHelper,Factory里面增加对MySQL的判断即可。主程序不需要改任何地方,只需要把配置文件改成MySQL的连接字符串即可。
上面的程序只是示例程序,里面的GetData()和SetData()没有意义,下面我给出在一般情况下访问数据库时,需要的接口方法,大家可以按照上面的代码说明,去实现自己的SQLHelper类。
如需转载,请注明本文原创自优快云 TJVictor专栏:http://blog.youkuaiyun.com/tjvictor