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

项目各层之间的引用关系

C#--抽象工厂设计模式--三层框架_第1张图片


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

C#--抽象工厂设计模式--三层框架_第2张图片


设计数据访问接口模块DAL

C#--抽象工厂设计模式--三层框架_第3张图片

C#--抽象工厂设计模式--三层框架_第4张图片


编写SQLServer数据库的SQLHelper

C#--抽象工厂设计模式--三层框架_第5张图片

和其他框架编写完全一样


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

C#--抽象工厂设计模式--三层框架_第6张图片

C#--抽象工厂设计模式--三层框架_第7张图片


编写访问Access数据库的AccessHelper

需要使用 using System.Data;
using System.Data.OleDb;
全部改成OleDb数据访问对象
C#--抽象工厂设计模式--三层框架_第8张图片


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

C#--抽象工厂设计模式--三层框架_第9张图片

C#--抽象工厂设计模式--三层框架_第10张图片


编写配置文件

C#--抽象工厂设计模式--三层框架_第11张图片


<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>

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

C#--抽象工厂设计模式--三层框架_第12张图片
C#--抽象工厂设计模式--三层框架_第13张图片

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

C#--抽象工厂设计模式--三层框架_第14张图片


在BLl中使用接口和工厂

C#--抽象工厂设计模式--三层框架_第15张图片

C#--抽象工厂设计模式--三层框架_第16张图片


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

设计好Access数据库,改变配置文件的相关配置信息,实现不同数据库访问。
将DAL模块需要单独复制到UI中的Debug文件夹中,供反射对象使用
C#--抽象工厂设计模式--三层框架_第17张图片


抽象工厂设计模式总结

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

相同点:两者都是解决对象类型选择和对象动态创建的问题,保证系统可扩展性、可维护性。
不同点:简单工厂只能选择一个对象,而抽象工厂是选择一组对象。

抽象工厂的应用范围:

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

抽象工厂的不足:

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


项目代码Git

Access数据库文件

你可能感兴趣的:(C#高级编程,设计模式,框架,sql,server,数据库)