领域模型之分层

Agatha网站架构图:


分七层:

Agathas.Storefront.Infrastructure

Agathas.Storefront.Model

Agathas.Storefront.Repository.NHibernate

Agathas.Storefront.Service

Agathas.Storefront.Service.Cache

Agathas.Storefront.Controllers

Agathas.Storefront.UI.Web.MVC


领域模型之分层原则 - 王建 - 一川好景

 

领域模型之分层原则 - 王建 - 一川好景

1、用户界面/展现层

用于向用户展现信息,处理用户在界面上的请求。比如strutstapestryspringMVC等页面框架。

更细的方面来讲就是:

1.    请求应用层以获取用户所需要展现的数据;

2.    发送命令给应用层要求其执行某个用户命令;

2、应用层

用来处理应用的活动,不包含领域中的业务逻辑。

应用层可以用来处理一些与领域概念无关的拦截性质的工作,比如日志,事务等。

此外,应用层也可以用来处理一些既不属于展现层,也不属于领域层,而是属于目前应用相关的一些服务。比如资金转账的业务的读取输入功能(读取输入不是转账的核心业务含义)。

对外为展现层提供各种应用功能(包括查询或命令),对内调用领域层(领域对象或领域服务)完成各种业务逻辑,应用层不包含业务逻辑。

3、领域层

负责表达业务概念,业务状态信息以及业务规则,领域模型处于这一层,是业务软件的核心。领域对象,领域服务,仓储接口均位于此层

领域的信息,是业务软件的核心所在。

需要保留业务对象的状态,对业务对象及其状态持久化的操作交给基础设施层。

领域层应该遵从以下原则:除非业务发生变化,否则其他任何变化均不应该影响到领域层。这些其他变化包括:不同的展现框架,不同的页面展现内容,是否要分页,是否支持手机客户端,是否公开WebService,是否提供OpenAPI等等。

4、基础设施层

本层为其他层提供通用的技术能力;提供了层间的通信;为领域层实现持久化机制;总之,基础设施层可以通过架构和框架来支持其他层的技术需求;

此层作为其他层次的支撑,可以为领域层的持久化提供支持,我们把这种为领域层提供持久化的基础设施层叫做仓储。仓储是个接口,且应该属于领域层。仓储的实现可以多样化:比如选择hibernateJDBC等等。此外,基础设施层,也可以为应用层提供服务,比如发送通告,电子邮件,读入xml等等。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值