微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

设计模式---工厂模型

下面用工厂模型来实现一个连接数据库的例子。实现在不改变代码的前提下,只通过修改相应的配置文件,就可以达到连接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类。

 

 

如需转载,请注明本文原创自CSDN TJVictor专栏:http://blog.csdn.net/tjvictor

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐