zoukankan      html  css  js  c++  java
  • 小白开学Asp.Net Core《二》(补)

    小白开学Asp.Net Core《二》(补)

                              ——数据仓储层(Repositroy)、服务层(Service)

    ---------------------------------------------------------------------------------------------------------

    我胡汉三又回来了(距离上篇时间有点长),今天抽时间将最近对项目的优化写下说明。

    1、Why

      读了上篇文章的朋友们都知道我在项目中(Repository 层)引入了两个常用的ORM,因此分别写了各自的接口(只能说太幼稚),现将他们整合起来。  

    2、Do

     A)、现将Repository调整如下:

      (图一)

        他们之间的关系图如下:

        

        说明:

        a)、IBaseRepository接口中定义了对数据库操作的常用操作,IDapperRepository是基于Dapper 的接口定义,ISqlSugarRepository 是基于SqlSugar的接口定义。

        b)、GenericDapperRepositroyBase是对IDapperRepository的实现,GenericSqlSugarRepositoryBase是对ISqlSugarRepository的实现

        具体代码就不贴了直接到 GitHub上 去看看,这里只是说下思路。

        说明了他们的关系后,再说下 图一 中的 RepositroyBase 类

        a)、先看代码   

     1 using Aju.Carefree.Repositories.Dapper;
     2 using Aju.Carefree.Repositories.SqlSugar;
     3 namespace Aju.Carefree.Repositories
     4 {
     5     public abstract class RepositroyBase<T, TKey> : GenericSqlSugarRepositoryBase<T, TKey> where T : class, new()
     6     {
     7         public RepositroyBase(string connName) : base(connName)
     8         {
     9         }
    10     }
    11 
    12     //public abstract class RepositroyBase<T, TKey> : GenericDapperRepositroyBase<T, TKey> where T : class, new()
    13     //{
    14     //    public RepositroyBase(string connName) : base(connName)
    15     //    {
    16     //    }
    17     //}
    18 }

        b)、代码贴出来后,肯定都知道我要干啥了。其实这个类起到的作用就是我可以在不动Server层与Repostiroy层代码时,切换ORM(爱用那个就用那个,两个都不喜欢用了可以沿用上面的思路自己扩展个)。

      B)、Service 层

        和上面一样先上图

        (图二)

        相比较Repository层,Service层就简单多了,说白了我对该层理解就是 写 业务逻辑 的 。

        a)、那么我们来看看IService接口   

    1 using Aju.Carefree.Common;
    2 
    3 namespace Aju.Carefree.IServices
    4 {
    5     public interface IService<T, TKey> : IDependency where T : class, new()
    6     {
    7 
    8     }
    9 }

        就是这么简单,这么简单为何要写呢?答案其实就是为了实现 IOC,其中IDependency 其实就是为了Autofac做的

        剩下的就是写业务逻辑了!!!这里就不在写了。其中在Server实现中要注意的一点就是 如下图所标红的地方

         

         好了,今天就到这里。下编再见。

    C)、总结

      总结一句话,这篇文章是对上篇文章的补充,也是彻底的放弃了以前的思路。

        欢迎大家提意见和建议,共同学习!

     

    --------------------------------------------------------------------------------------------------------------

      (本人坚信:学习是由浅到深的过程,先打基础)

        不喜勿喷!谢谢!

      GitHub地址: https://github.com/AjuPrince/Aju.Carefree

  • 相关阅读:
    《最后期限》阅读笔记03
    《最后期限》阅读笔记02
    《最后期限》阅读笔记01
    返回一个二维整数数组中最大联通子数组的和
    软件工程团队开发——第一次冲刺会议总结
    结对项目开发电梯调度
    软件工程课程建议
    第二次冲刺07
    第二次冲刺06
    第二次冲刺05
  • 原文地址:https://www.cnblogs.com/haoxiaozhang/p/10938909.html
Copyright © 2011-2022 走看看