zoukankan      html  css  js  c++  java
  • 喵喵的技术学习之路(一)

    介绍

    发现纯写技术蛮无趣枯燥的,也不连贯,就突发奇想,在博客中加些生活的乐趣。

    主题呢就是讲一个程序员小菜鸟的学习成长,技术博客都融入到其中。背景如下:

    地点:平行世界中魔都一家公司,喵喵小菜鸟一枚,大四实习妹纸。蘑菇一神秘男子,人物纯属虚构。

    正文

    喵喵:蘑菇,三层架构是什么东东?

    蘑菇:简单来说,为了降低Ui层和数据层的耦合,在中间增加一道缓冲层基本表现形式是业务逻辑层。 看下面的图:

     

     喵喵:哼,从网上copy的,我也看到过,可是我大部分UI层只是展示数据,没有业务逻辑啊?

     敲头,成大事,要考虑远一点。它主要是缓冲UI和数据层的直接交互,不但是业务逻辑,以后你增加缓存层,服务层呢。

     三层都是变化之根本,万丈高楼的地基。某大神曾说过:软件开发中遇到的所有问题,都可以通过增加一层抽象而得以解决。

     这是基础,懂了吗 喵喵。

     喵喵:不懂,我是小女子,就不想在没有逻辑的地方包装一层,你有什么好办法? /鄙视眼神

     你UI层部分有逻辑部分又没有,好吧! 但是别没有的直接调DAL,有的直接调BLL,这样以后不方便维护。

     你UI层统一调BLL,不能直接下沉调DAL。至于没有逻辑的话,你可以通过代理调用。数据层如下:

      public class OrderData
        {
            public void GetList(string orderID) { }
            public void AddOrder(OrderInfoEntity info) { }
        }
        public class OrderInfoEntity { }

    逻辑层,增加一道数据代理如下:

    public class OrderBLL
        {
            private Lazy<OrderData> _dataProxy;
            public OrderData DataProxy
            {
                get { return _dataProxy.Value }
            }
            public OrderBLL()
            {
                _dataProxy = new Lazy<OrderData>(true);
            }
            public void AddOrder(OrderInfoEntity info)
            {
                DataProxy.AddOrder(new OrderInfoEntity { });
            }
        }

    延迟初始化,能提高系统加载速度,只在使用的时候才初始化。  你调用如下:

               OrderBLL ob = new OrderBLL();
                ob.AddOrder(new OrderInfoEntity());  //有业务逻辑的调
                ob.DataProxy.GetList();              //没有业务逻辑的通过代理调。

    如果你以后增加业务的话,如下:

     public void GetList(DateTime dt)            //BLL层
            {
                var result = ob.DataProxy.GetList().where(r => r.CreateDate == dt);
            }
    
    ob.GetList(DateTime.Now);   //UI层          //以后增加的业务逻辑。

    一时突发奇想,本篇仅试水下,轻喷。

  • 相关阅读:
    闭包
    this
    函数声明,表达式,构造函数
    算法学习_栈
    LeetCode刷题_140
    2020/3/20 刷题
    2020/3/19 刷题
    2020/3/13_C++实验课
    刷题(主要是DFS) 2020年3月12日
    DFS的一些题2020/3/11
  • 原文地址:https://www.cnblogs.com/mushroom/p/4248065.html
Copyright © 2011-2022 走看看