在分解复杂的软件系统时,软件设计者使用最多的技术之一就是分层,在计算机本身的架构中也可以看到。
存CPU指令集和设备驱动程序,在到内部芯片和各个逻辑门电路。网络中,FTP层架构在TCP之上,TCP架构
在IP之上,IP架构又在以太网之上。
在这种组织方式下;
上层使用了下层定义的各种服务,而下层对上层一无所知。另外,每一层对自己的上层隐藏其下层的细节。
系统分层的好处
1,无需过多了解其他层次的基础上,就可以将某一层作为一个有机的整体来理解。
2,可以替换某次的具体实现,只要前后提供的服务相同即可。
3,可以将层次间的耦合度降到最低
4,分层有利于标准化工作,(比如TCP)
5,一旦构建好某一层,就可以用他为很多上层服务提供支持。
系统分层的缺点
1,层次不能封装所有东西,有时他会为我们带来联级修改。
2,过多的层次会影响性能。
三个基本的层次
表现层:提供服务,显示信息。
领域层:逻辑,系统中真正的核心。
数据源层:与数据库,消息系统,事物管理及其他软件包通信。
表现层的主要职责就是向用户显示信息并把从用户那里获取的信息解释成领域层或数据源层上的各种动作。
数据源层就是数据库,主要职责是存储持久数据。
领域逻辑,也成业务逻辑。根据输入数据或者已有数据进行计算,对从表现层输入的数据进行验证,以及根据
从表现层接收的命令来确定应该调度哪些数据源逻辑。
到目前为止,我们一直都在讨论用户,假如是一个很时髦的WEB SERVICE或者一个古老的批处理程序呢?这样,很显然
表现层就有可能与数据源层出现某些相似之处,因为他们都是系统与外界的接口。
因此,为别人提供服务的接口与使用别人服务的接口存在较大的差异。需要明确区分。
表现层是系统对外提供服务的外部接口。不管外界是复杂的人类还是一个简单的远程程序。
数据源层是系统使用外部服务的接口。
一般情况下,我们尽量使用三层架构,
一旦在复杂点,可以将三层分解到不同的子层。
伴随着分离,还有一条关于依赖性的原则,领域层和数据源层绝对不要依赖于表现层。也就是说,在领域层和数据源层的代码中,
绝不要出现调用表现层的代码。
分享到:
相关推荐
C#分层 C#分层思想 C#分层实例 C#分层项目 C#分层详解
这个文件示例演示了DAO分层思想及其步骤
本文为大家介绍了单片机程序设计中的“分层思想”。
文章为大家介绍一下在单片机程序设计中什么叫分层思想。
分层思想实现的小demo,功能包括增删改查,注册登陆,分页。压缩包包含代码和数据库。
浅谈单片机程序设计中的“分层思想” 浅谈单片机程序设计中的“分层思想” 浅谈单片机程序设计中的“分层思想”
随便写下的一点东西,本来打算去发表,不过想想还是算了,不是什么重要的东西,不过这个东西确实很有用。文章烂的去组织和修改了,随便看看吧。
Java分层思想.pdf
.NET开发过程中常用的分层思想及实践,包含了Attribute在实际开发中使用的例子
吕子鉷《浅谈最短径路问题中的分层思想》8.吕子鉷《浅谈最短径路问题中的分层思想》
这个是用分层思想写的,大家可以借鉴下,有问题可以留言
单片机重要设计思想分层与时间片轮 里面包含两个文档 分层的思想,并不是什么神秘的东西,事实上很多做项目的工程师本身自己也会在用。看了不少帖子都发现没有提及这个东西,然而分层结构确是很有用的东西,参透后...
有关JAVAEE分层的思想,模块化的设计,各个层次之间的调用关系,还附有例子,希望能帮助到大家!包里为截图,请大家自行选择图片查看器!
此项目是用java swing编写的桌面应用程序,采用mvc设计模式进行分层,所使用的数据从xml文件读取,下载后可直接导入到工作空间运行
浅谈最短路径问题中的分层思想.doc
浅谈最短径路问题中的分层思想.ppt
王欣上《浅谈基于分层思想的网络流算法》.ppt