您的位置:首页 > 编程语言 > C#

C#--抽象工厂设计模式--三层框架

2017-09-13 06:26 411 查看

项目各层之间的引用关系



搭建基于抽象工厂的三层框架



设计数据访问接口模块DAL





编写SQLServer数据库的SQLHelper





和其他框架编写完全一样

使用SQLServer数据提供程序实现IDAL中的所有接口方法





编写访问Access数据库的AccessHelper

需要使用 using System.Data;

using System.Data.OleDb;

全部改成OleDb数据访问对象



使用Access数据库提供程序实现IDAL中的所有接口方法





编写配置文件



<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add connectionString="Server=.;DataBase=StudentManageDB;Uid=sa;Pwd=aaa999a9" name="connString" />
<add connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\SQL\DB\StudentManageDB.mdb"
name="accessConnString" />
</connectionStrings>
<appSettings>
<add key="" value=""/>
<add key="" value=""/>
</appSettings>
</configuration>


基于反射技术编写抽象工厂类





配置抽像文件,多个数据库对象择期一



在BLl中使用接口和工厂





抽象工厂设计模式应用测试

设计好Access数据库,改变配置文件的相关配置信息,实现不同数据库访问。

将DAL模块需要单独复制到UI中的Debug文件夹中,供反射对象使用



抽象工厂设计模式总结

抽象工厂与简单工厂异同:

相同点:两者都是解决对象类型选择和对象动态创建的问题,保证系统可扩展性、可维护性。

不同点:简单工厂只能选择一个对象,而抽象工厂是选择一组对象。

抽象工厂的应用范围:

在开发中抽象工厂不仅能解决DAL的不同需求问题。也可以根据需要设计BLL的抽象工厂模式,比如有些财务软件,不同国家的财务算法有区别,这时候可以根据客户具体的要求设计不同业务逻辑,而DAL都使用相同的。

抽象工厂的不足:

设计模式在带来方便的同时,也会带来一些不足,典型的问题因为使用了反射技术造成软件系统性能一定程度的降低,但现在硬件性能高,影响在某种程度上降低很多。除非必要,不要随便使用设计模式。

项目代码Git

Access数据库文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息