为什么要有业务逻辑层??我直接调用数据访问层不就得了吗?

The Big Short 2013-09-08 08:23:06
从两个方面考虑:性能和安全会不会受影响?
感觉业务逻辑层很麻烦,觉得没必要,我向来做项目都是只写数据访问层。虽然老师让我们写它,但他有时候也不写业务逻辑层。。。
如果不写 性能 和 安全 受什么样的影响?
...全文
370 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
The Big Short 2013-09-08
  • 打赏
  • 举报
回复


public static class HomeSearchManager
    {
        /// <summary>
        /// 根据姓名查询员工信息
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public static List<InCommunication> GetInCommunicationByName(string name)
        {
            return HomeSearchService.GetInCommunicationByName(name);
        }

        /// <summary>
        /// 根据部门查询员工信息
        /// </summary>
        /// <param name="department"></param>
        /// <returns></returns>
        public static List<InCommunication> GetInCommunicationByDepartment(string department)
        {
            return HomeSearchService.GetInCommunicationByDepartment(department);
        }

        /// <summary>
        /// 根据职务查询员工信息
        /// </summary>
        /// <param name="department"></param>
        /// <returns></returns>
        public static List<InCommunication> GetInCommunicationByDuty(string duty)
        {
            return HomeSearchService.GetInCommunicationByDuty(duty);
        }
    }

就是这种东西bLL
  • 打赏
  • 举报
回复
当你设计一个复杂的平台,例如最基本的呼叫中心平台,甚至是最简单的网络电话平台,你就是在做出各种通讯协议的定义,这些通讯协议中传输者千变万化的前端软件所需要的对象实体,并且支持这些前端软件所需要的性能。而这些前端软件根本不知道你在后台有多少种数据库、用了多少计算机、有多少路由器、数据库在后台的技术中到底占其中20%还是40%。 反过来说,如果你找个人做个淘宝网页,他却要指手画脚于淘宝的数据库,原因是他关心于淘宝的“性能和安全性”,这岂不是因为没有学好基本的三层概念就从学校毕业了嘛。
The Big Short 2013-09-08
  • 打赏
  • 举报
回复
引用 4 楼 blueskybcl 的回复:
分层的目的是就是松耦合高内聚,维护起来也方便。 你们现在做的没多少业务逻辑要处理,所以你觉得没用,但是在你工作了以后遇到的有些大项目必须得有业务逻辑层,因为有好多业务方面的算法等等要处理,比如说我业务逻辑层的算法有问题了,我就没必要去动表现层和数据访问层,我只需要把业务逻辑层修改好了打包替换以前的dll就可以了,这样就不影响以前发布的。 你如果只写两层(表现层,数据访问层)也可以,有些项目的业务逻辑没多少所以就直接两层,比如我们现在做的ERP,它把业务逻辑处理都放到了存储过程里,我当时也做过一个大型的电子商务网站,它的业务逻辑层里面几乎没啥东西就起了个桥梁作用。我做的大项目不是很多,所以道行浅,不能给你说出一些实质性的问题,所以我觉得需不需要就要根据项目的实际情况了。
yaoxi,我要做项目也不大,既然安全和性能没问题那就不写了吧
  • 打赏
  • 举报
回复
因为你只提“业务逻辑层”这个词儿,我无法判断你的老师给你说的是什么例子。 比如说我们设计一个企业协同系统,需要1000多人进行100多种业务,每种业务可能有6、7个更具体的活动,这些业务还会自动衔接起来,而最为关键的是这些业务的具体表单需要用户(实际上是一两个懂一点开发的维护人员啦)自己去定义、去画出和配置工作流图,那么我们所编写的就是一个工具平台,而不是那100多种业务、700多种“增删改查”画面。 而有些人,仅仅会根据一个或者两个数据库表来写出一个增删改查界面。仅仅如此,也在“做项目”(其实那种拿项目的公司是靠老板个人关系),那么这种项目就近需要招聘几十个学生可能就够了(但愿够了)。
The Big Short 2013-09-08
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
[quote=引用 楼主 u011335204 的回复:] 我向来做项目都是只写数据访问层。虽然老师让我们写它,但他有时候也不写业务逻辑层。。。
我不太清楚你所谓的业务逻辑层具体是指什么样的设计思想。但是有很多所谓的BLL是对DAL简单的封装,那个东西根本没有必要写。这个时候,等于根本没有搞清楚如何设计业务逻辑层,此时就算是有个叫做BLL的一大堆代码那么其实也没有分层所带来的那种灵活性。[/quote] 对啊,我看他们写的代码,业务逻辑层里的代码就是调用了一下数据访问层,在就什么都没有,感觉毫无意义
  • 打赏
  • 举报
回复
引用 楼主 u011335204 的回复:
我向来做项目都是只写数据访问层。虽然老师让我们写它,但他有时候也不写业务逻辑层。。。
我不太清楚你所谓的业务逻辑层具体是指什么样的设计思想。但是有很多所谓的BLL是对DAL简单的封装,那个东西根本没有必要写。这个时候,等于根本没有搞清楚如何设计业务逻辑层,此时就算是有个叫做BLL的一大堆代码那么其实也没有分层所带来的那种灵活性。
绿色123 2013-09-08
  • 打赏
  • 举报
回复
分层的目的是就是松耦合高内聚,维护起来也方便。
你们现在做的没多少业务逻辑要处理,所以你觉得没用,但是在你工作了以后遇到的有些大项目必须得有业务逻辑层,因为有好多业务方面的算法等等要处理,比如说我业务逻辑层的算法有问题了,我就没必要去动表现层和数据访问层,我只需要把业务逻辑层修改好了打包替换以前的dll就可以了,这样就不影响以前发布的。
你如果只写两层(表现层,数据访问层)也可以,有些项目的业务逻辑没多少所以就直接两层,比如我们现在做的ERP,它把业务逻辑处理都放到了存储过程里,我当时也做过一个大型的电子商务网站,它的业务逻辑层里面几乎没啥东西就起了个桥梁作用。我做的大项目不是很多,所以道行浅,不能给你说出一些实质性的问题,所以我觉得需不需要就要根据项目的实际情况了。
  • 打赏
  • 举报
回复
我们写程序,自然是最好少写代码而仅仅用鼠标拖拉才是最好的;自然是少定义一些类型才是最好的;自然是只会写代码而不用去管交互界面设计、不用从应用出发去研究才是最简单、“无压力”的了。这些都是真的。 实际上那种基本的逻辑层,只是个启蒙而已。全世界所有的需要分层设计的软件,最基本最初级最普通的也就是这个所谓“三层”了。学习这个知识,就是让你必须掌握将UI于数据库强行分离的技术,对于学生你不用讲什么理由,学不会基本的概念和技能那么不应该毕业。
  • 打赏
  • 举报
回复
单独抠字眼,那么所谓“性能和安全性”自然是什么分层都没有才“更好”。这就好像是你上学时如果是没有老师、全都靠自学,那么自然是没有考试的课堂最方便和安全一样。 问题是你的老师教会你们将来面对职业开发所需要的基本知识,而不是你一个人在那里做为编程爱好者式的做法。
The Big Short 2013-09-08
  • 打赏
  • 举报
回复
不写觉得很省事

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧