c#分层设计介绍

领域驱动分层介绍

UI(表示层)

最容易理解, 这一层负责显示信息给用户,并解释用户的命令。有时,用户不是人,而是另一个系统。

应用层

用于协调领域模型对象的动作。不建议这一层包含业务规则或领域知识,即使是维护状态也不行——这是领域模型做的事情。应用层对于协调任务和把动作委托给领域模型非常有用。虽然不用于维护业务实体的状态,单应用层可以维护跟踪用户或者系统所执行的当前任务的状态。应用层不干涉阻碍领域模型,这一点非常重要。领域模型表示了业务模型的重要部分

领域层

这是一个系统中放置业务逻辑和规则的地方,是软件的心脏。领域层控制和使用特定业务概念或情况的状态,但该层如何存储实际上是委托给基础设施层。领域层包含业务模型,领域逻辑不会分散到其他层,这两点在领域驱动设计中是绝对关键的。

基础设施层

这是同用的技术,底层基础代码发生的地方,如把对象持久化到数据库,发送消息,记录日志,或者其他通用的横切关注。它也为4层之间交互模式的架构框架提供了一个地方。

普通三层是 C# Class Library项目

	如 : Model ,Infrastructure,Application
     初始骨架
	 //Presentantion 运行项目

以上所示,名称空间模式总是使用XXXX..有时候可能会需要一个
额外的项目,但它还是属于 4层中的一个。
这种情况通常发生在基础设施层,这样可能需要实现一些功能,
需要和Infrastructure 项目的其他部分隔离。在这种特定情况下,
我们将遵循命名标准是 XXX.<>.<> 例如,SmartCA.Infrastructure.Caching
这些类型的项目可以在以后需要是添加。

 设计架构层。
  各层已经建立了名称空间命名模式,开始设计各个层。

  下面将构建的各层是应用层,领域层,基础设施层和表示层(即UI层)
  应用 Application
  设计应用层 
    作为一个应用编程接口(API),或者近似领域模型的门面(facade)。
   (近似门面,是因为门面只是使得使用领域模型更简单,而应用层还包括其他一些功能
     不仅要协调不同领域对象的动作,还要维护特定任务的状态。应用层的类方法
	 大多数是静态的方法,这样容易让表示层的类使用。
	 例如 ,应用层有一个ProjectService 类,他用非常简单的方法来加载
	 和保存项目,如 Project.GetProject(1) 和 Project.Save(project).
	 这一层也用与Web服务方法调用,以获取或保存数据。另一个示例是使用应用层
	 来协调领域对象和基础设施对象之间的动作,如保存一个项目,然后发送一封
	 Email 给所有感兴趣的管理人员。
   )
   设计领域层
    领域层将使用POCO的方式设计(POCO指简单旧式CLR对象),目的是为了让领域模型
	尽可能免遭干扰,不必实现若干持久化相关接口,或者从和业务模型无关的类继承。
	领域层类要尽可能持久化无关。
   重要领域驱动设计概念
     在深入到SmartCA 系统的设计之前,有必要讨论一下一些常用的领域驱动设计
	 属于和概念。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值