Java分层架构的使用规则
原文章引用地址: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分层架构的使用规则相关推荐
- JVM知识梳理,java分层架构
首先,回收前我们必须确定那些对象可以回收.哪些不能回收,哪些暂时不能回收!这就用到判断对象是否存活的算法 引用计数法( Reference Counting):这个方法JAVA现在不使用, 原理:在每 ...
- java 框架漏洞网站_在分层架构下寻找java web漏洞
web开发应用程序(网站),是目前应用最广泛的程序.但是开发者的水平参差不齐,导致了各种各样web漏洞的出现.本文站在分层架构的角度,分析一下如何在java web程序中找到可能出现的种种漏洞. 本文 ...
- java分层命名_JAVA基础篇(5)-POJO的命名规则
源起于alibaba的开发手册类的命名规范 参考自--知乎上的回答 变脸命名规范 不同类型的对象在架构设计中用于不同的用途,如下的分层架构表示各个POJO的用途.为什么要在分层架构中国,定义这些POJ ...
- DDD分层架构最佳实践
还在单体应用的时候就是分层架构一说,我们用得最多的就是三层架构.而现在已经是微服务时代,在微服务架构模型比较常用的有几个,例如:整洁架构,CQRS(命令查询分离)以及六边形架构.每种架构模型都有自己的 ...
- Java后端架构开荒实战(二)——单机到集群
Java后端架构开荒实战(二)--单机到集群 一.前言 上一篇文章做了一些准备工作,这边文章正式开始写代码. 在做好单实例架构之后,升级到集群是一件很容易的事情,所以把单机和集群放在这一篇一起说. 二 ...
- 还在搞三层架构?了解下 DDD 分层架构的三种模式吧 !
来源:jianshu.com/p/a775836c7e25 引言 在讨论DDD分层架构的模式之前,我们先一起回顾一下DDD和分层架构的相关知识. DDD DDD(Domain DrivenDesign ...
- 领域驱动设计(DDD):分层架构的三种模式
DDD DDD(Domain Driven Design,领域驱动设计)作为一种软件开发方法,它可以帮助我们设计高质量的软件模型.在正确实现的情况下,我们通过DDD完成的设计恰恰就是软件的工作方式. ...
- DDD 实战 (5):战略设计之上下文映射和系统分层架构
在上篇<DDD 实战 (4):战略设计之系统上下文和限界上下文>完成了限界上下文的识别(也就是系统"最粗粒度"的模块划分)后,我们需要对这些上下文之间的协作关系进行分析 ...
- DDD 实战 (5):限界上下文映射和系统分层架构
在完成了限界上下文的识别(也就是系统"最粗粒度"的模块划分)后,我们需要对这些上下文之间的协作关系进行分析--即"限界上下文关系映射".也只有在完成上下文关系映 ...
- 软件架构设计杂记: 分层架构 与 PO、VO、DTO、BO、POJO、BO/DO、DAO
软件架构设计杂记: 分层架构 与 PO.VO.DTO.BO.POJO.BO/DO.DAO 原创: 陈光剑 Kotlin 开发者社区 前天 某位计算机大师说过: 计算机科学领域任何问题,都可以间接的通过 ...
最新文章
- Oracle集合操作函数:Union、Union All、Intersect、Minus
- 计算机与网络应用教材格式化,《计算机与网络应用》正式稿.docx
- Linux系统rootpassword改动
- c语言生成随机英文字母,菜鸟求助,写一个随机输出26个英文字母的程序
- 论 BUG调试与(程序猿)初学者
- CPU,内存, 硬盘,指令之间的关系
- 和baby的区别_姜涛状告白衣山猫?小伊伊有剧本?惟Baby整容?阿彩照骗?De劈腿?...
- Julia : 再谈HDF5 的save 和 load
- 渗透测试流程-全(仅供学习,知识分享)
- CSAPP第八章家庭作业参考答案
- 中文打字速度测试软件hztest_中文打字速度测试软件官方版
- js 通过图片链接获取file对象
- day1 -- ELMO语言模型
- 结合自己经历的一场机器人省赛浅谈如何学习单片机
- 想从事编程报考专业:计算机技术好,还是软件工程好?
- 极客日报第127期:华为最新人事调整:余承东任智能汽车解决方案 BU CEO;美团悄悄更换抽佣规则,佣金不降反升;Scala 3 正式发布
- ZCMU-1860-zbj的电梯间
- 开源教程 | 树莓派 DIY 波士顿动力机器狗,立省 53 万 RMB
- Ackerman数学函数
- linux如何彻底删除mysql_CentOS下如何完全干净卸载MySQL