zoukankan      html  css  js  c++  java
  • 三层架构之泛型抽象工厂

    三层架构之泛型抽象工厂

    原来写过一篇三层架构之泛型应用的简单登录,已经过去2年了,今天有一朋友问我关于抽象工厂的问题,就把自己后来解耦的方法从项目中拿出来了,方便大家学习。

     

    我重新写了一个例子项目,如下截图:

     

     

    XU.Model层中有一个抽象类BaseModel.cs,User.cs是用户实体类,继承与BaseModel类,是用于类型安全考虑的

     

     BaseModel.cs

     

     User.cs

     

    XU.FactoryDAL层是用于反射获取实例,其中只有一个类

     

     DataAccess<T>.cs

     

    XU.IDAL层依赖与XU.Model,其中包含一个基接口IBaseDAL.cs,还有一个用于定义一些基接口中没有方法的接口IUserDAL,继承与基接口IBaseDAL<T>

     

     IBaseDAL<T>.cs

     

     IUserDAL.cs

     

    实现XU.IDAL中接口有2个类库,一个是MSSQL方案,一个是MYSQL方案,这2个类库都依赖于XU.Model和XU.IDAL,下面是实现方案

     

    XU.MSSQLDAL的实现如下

     

     UserDAL.cs

     

    XU.MYSQLDAL的实现如下

     

     UserDAL.cs

     

    XU.BLL业务逻辑层中包含了一个用于继承的基类BaseBLL<T>和用户业务逻辑UserBLL类,这层依赖XU.IDAL,XU.Model,XU.FactoryDAL库

     

     BaseBLL.cs

     

     UserBLL.cs

     

    XU.ConsoleDemo是一个控制台程序,本准备弄一个网站测试,觉得麻烦,用这个讲解抽象工厂更简单和直观

     

     App.config

     

     Program.cs

     

     

    注意:XU.ConsoleDemo是不会直接引用XU.MSSQLDAL和XU.MYSQLDAL的,但是XU.ConsoleDemo中的Debug目录下要把编译好的XU.MSSQLDAL.dll和XU.MYSQLDAL.dll放进去,如果是网站就要放入网站中的Bin文件夹下

     

     

     

     

  • 相关阅读:
    《游戏引擎架构》笔记十二
    《游戏引擎架构》笔记十一
    《游戏引擎架构》笔记十
    《游戏引擎架构》笔记九
    《游戏引擎架构》笔记八
    《游戏引擎架构》笔记七
    2000行代码实现软渲染引擎
    C++ 构造函数或析构函数调用虚函数
    C++ protected访问权限思考
    堆排序
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3495712.html
Copyright © 2011-2022 走看看