随着软件开发技术不停地迭代更新,现在的系统基本上实现了由表示、逻辑一体化到分层模式的转变。
一个好的层次划分不仅仅可以使代码结构更加清晰、增添代码可读性。同时也使得项目分工更加明确,维护更为便利。
而我要介绍的是在java开发领域中,面向对象的分层模式-领域模型分层。
领域模型分层最主要的工作就是分离领域,分离领域就是将领域对象与系统中的其他功能分离,从而避免将领域概念和其他只与软件技术相关的的概念相混淆,其最终目的是为了让对象更专注于逻辑处理而无需关注其他的事物。
领域模型设计书籍曾描述过领域模型可分为4层,分别是
1、用户界面层
负责向用户显示信息和解释用户指令
2、应用层
定义软件要完成的任务,并指挥表达领域概念的对象来解决问题
3、领域层(模型层)
负责表达业务概念,业务状态信息以及业务规则
4、基础设施层
为各层提供通用的技术能力,为应用层传递消息,为领域层提供持久化机制。
在结合实际的开发经验与书本的知识,认为在开发过程中可落地成如下几层:
Controller层【用户界面层】、Service层【应用层】、Action层【应用层】、entity层【领域层】、DAO层【基础设施层】。
其层与层的关系如下图:

为了更好的理解上述分层架构,举个栗子来说明一下。
先设定一个场景:
有一家服装店,店里有店长和多个导购。该店有一批会员,为了更好的服务会员,店长需要将会员分配给导购,让导购服务自身的会员。
待实现功能:给导购分配会员

* Controller层【用户界面层】:负责与界面或其他系统的对接,相当于一个系统的门户。所有其他非本系统的用户都应该先将请求提交给Cotroller层。
作用:
1、负责接待外来用户,并将请求传递给下一层
2、校验请求的合法性【如:判断用户合法性,请求参数合理性】
3、相应用户请求【系统将请求处理完毕后,将返回的结果组合成用户想要的结果】随着软件开发技术不停地迭代更新,现在的系统基本上实现了由表示、逻辑一体化到分层模式的转变。
一个