原文章引用地址:http://blog.csdn.net/ygzk123/article/details/7816511

三层结构的程序不是说把项目分成DAL, BLL, WebUI三个模块就叫三层了, 下面几个问题在你的项目里面:

  1. UILayer里面只有少量(或者没有)SQL语句或者存储过程调用, 并且这些语句保证不会修改数据?   2. 如果把UILayer拿掉, 你的项目还能在Interface/API的层次上提供所有功能吗?   3. 你的DAL可以移植到其他类似环境的项目吗?   4. 三个模块, 可以分别运行于不同的服务器吗?   如果不是所有答案都为YES, 那么你的项目还不能算是严格意义上的三层程序. 三层程序有一些需要约定遵守的规则:   1. 最关键的, UI层只能作为一个外壳, 不能包含任何BizLogic的处理过程   2. 设计时应该从BLL出发, 而不是UI出发. BLL层在API上应该实现所有BizLogic, 以面向对象的方式   3. 不管数据层是一个简单的SqlHelper也好, 还是带有Mapping过的Classes也好, 应该在一定的抽象程度上做到系统无关   4. 不管使用COM+(Enterprise Service), 还是Remoting, 还是WebService之类的远程对象技术, 不管部署的时候是不是真的分别部署到不同的服务器上, 最起码在设计的时候要做这样的考虑, 更远的, 还得考虑多台服务器通过负载均衡作集群   所以考虑一个项目是不是应该应用三层/多层设计时, 先得考虑下是不是真的需要? 实际上大部分程序就开个WebApplication就足够了, 完全没必要作的这么复杂. 而多层结构, 是用于解决真正复杂的项目需求的。

转载于:https://www.cnblogs.com/archermeng/p/7537572.html

Java分层架构的使用规则相关推荐

  1. JVM知识梳理,java分层架构

    首先,回收前我们必须确定那些对象可以回收.哪些不能回收,哪些暂时不能回收!这就用到判断对象是否存活的算法 引用计数法( Reference Counting):这个方法JAVA现在不使用, 原理:在每 ...

  2. java 框架漏洞网站_在分层架构下寻找java web漏洞

    web开发应用程序(网站),是目前应用最广泛的程序.但是开发者的水平参差不齐,导致了各种各样web漏洞的出现.本文站在分层架构的角度,分析一下如何在java web程序中找到可能出现的种种漏洞. 本文 ...

  3. java分层命名_JAVA基础篇(5)-POJO的命名规则

    源起于alibaba的开发手册类的命名规范 参考自--知乎上的回答 变脸命名规范 不同类型的对象在架构设计中用于不同的用途,如下的分层架构表示各个POJO的用途.为什么要在分层架构中国,定义这些POJ ...

  4. DDD分层架构最佳实践

    还在单体应用的时候就是分层架构一说,我们用得最多的就是三层架构.而现在已经是微服务时代,在微服务架构模型比较常用的有几个,例如:整洁架构,CQRS(命令查询分离)以及六边形架构.每种架构模型都有自己的 ...

  5. Java后端架构开荒实战(二)——单机到集群

    Java后端架构开荒实战(二)--单机到集群 一.前言 上一篇文章做了一些准备工作,这边文章正式开始写代码. 在做好单实例架构之后,升级到集群是一件很容易的事情,所以把单机和集群放在这一篇一起说. 二 ...

  6. 还在搞三层架构?了解下 DDD 分层架构的三种模式吧 !

    来源:jianshu.com/p/a775836c7e25 引言 在讨论DDD分层架构的模式之前,我们先一起回顾一下DDD和分层架构的相关知识. DDD DDD(Domain DrivenDesign ...

  7. 领域驱动设计(DDD):分层架构的三种模式

    DDD DDD(Domain Driven Design,领域驱动设计)作为一种软件开发方法,它可以帮助我们设计高质量的软件模型.在正确实现的情况下,我们通过DDD完成的设计恰恰就是软件的工作方式. ...

  8. DDD 实战 (5):战略设计之上下文映射和系统分层架构

    在上篇<DDD 实战 (4):战略设计之系统上下文和限界上下文>完成了限界上下文的识别(也就是系统"最粗粒度"的模块划分)后,我们需要对这些上下文之间的协作关系进行分析 ...

  9. DDD 实战 (5):限界上下文映射和系统分层架构

    在完成了限界上下文的识别(也就是系统"最粗粒度"的模块划分)后,我们需要对这些上下文之间的协作关系进行分析--即"限界上下文关系映射".也只有在完成上下文关系映 ...

  10. 软件架构设计杂记: 分层架构 与 PO、VO、DTO、BO、POJO、BO/DO、DAO

    软件架构设计杂记: 分层架构 与 PO.VO.DTO.BO.POJO.BO/DO.DAO 原创: 陈光剑 Kotlin 开发者社区 前天 某位计算机大师说过: 计算机科学领域任何问题,都可以间接的通过 ...

最新文章

  1. Oracle集合操作函数:Union、Union All、Intersect、Minus
  2. 计算机与网络应用教材格式化,《计算机与网络应用》正式稿.docx
  3. Linux系统rootpassword改动
  4. c语言生成随机英文字母,菜鸟求助,写一个随机输出26个英文字母的程序
  5. 论 BUG调试与(程序猿)初学者
  6. CPU,内存, 硬盘,指令之间的关系
  7. 和baby的区别_姜涛状告白衣山猫?小伊伊有剧本?惟Baby整容?阿彩照骗?De劈腿?...
  8. Julia : 再谈HDF5 的save 和 load
  9. 渗透测试流程-全(仅供学习,知识分享)
  10. CSAPP第八章家庭作业参考答案
  11. 中文打字速度测试软件hztest_中文打字速度测试软件官方版
  12. js 通过图片链接获取file对象
  13. day1 -- ELMO语言模型
  14. 结合自己经历的一场机器人省赛浅谈如何学习单片机
  15. 想从事编程报考专业:计算机技术好,还是软件工程好?
  16. 极客日报第127期:华为最新人事调整:余承东任智能汽车解决方案 BU CEO;美团悄悄更换抽佣规则,佣金不降反升;Scala 3 正式发布
  17. ZCMU-1860-zbj的电梯间
  18. 开源教程 | 树莓派 DIY 波士顿动力机器狗,立省 53 万 RMB
  19. Ackerman数学函数
  20. linux如何彻底删除mysql_CentOS下如何完全干净卸载MySQL

热门文章

  1. C#原子性运算 interlocked.compareExchanged
  2. 【bzoj1085】【SCOI2005】【骑士精神】
  3. hihocoder 1866 XOR
  4. Python3 递归算法
  5. 如何解决Maple的应用在数学中
  6. c语言详解  蔡勒(Zeller)公式计算某一天是星期几  极其方便
  7. cocos2d-x使用python创建vs模板
  8. sql server 中join 查詢中on後面 加case的用法.
  9. [Flex]浅析Mate flex framework在实际项目中的应用(二)
  10. 子盒子width为父盒子width的百分比注意