1. 目的
将业务层的方法调用,变成非显式调用,有利于界面的自动化测试。
2. 动机
在编写客户端代码的时候,很多Action 都是直接调用业务层方法(或者通过Presenter 负责调用),这样就会使界面的代码直接依赖业务层代码,在进行单元测试的时候会为业务层接口打很多的桩,工作量较大。而且界面的单元测试,主要是测试界面的布局、界面的逻辑和用户响应等,在单元测试阶段很少会涉及业务的逻辑。
3. 参与者
1, Presentation: 主要负责界面的展现和用户操作的接受。
2. Presenter: 主要负责用户的界面操作,转发用户的业务操作。
3. Domain Binder: 主要负责连接表现层和领域逻辑层。
4. Domain Accessor: 主要负责领域逻辑层的访问。
5. Domain Logic: 主要负责处理业务逻辑。
4. 协作
说明:
1.图中的虚线为非显式调用;
2.图中的实线为直接方法调用;
5. 实现
实现流程图如下:
由于只能加3个附件,所以其它流程图不能够加进来,具体可能参见源代码吗?
5. 结果
表现层不直接依赖领域层,用户在进行业务操作时,Presenter 会将业务操作封装成一个Domain Event 发到Domain Accessor。 Domain Event 封装了操作的类型和参数。当系统需要多客户端同步时,Domain Accessor 会接收到领域层发来的事件,然后再将该事件转换成Domain Event 发出去,表现层会收到事件然后作相应的处理。
6. 特点
优点:该模式有利于界面的单元测试或自动化测试,也使开发界面的人不关心业务逻辑,开发业务逻辑的人不关心界面,有利于合理的分工;
缺点:用户操作被抽象成一个Domain Event,会使结构变的复杂,很难被理解。
7. 感谢
感谢shaucle和BirdGu,他们提供了很多建设性的意见。
- 大小: 10.8 KB
- 大小: 20.1 KB
分享到:
相关推荐
7. **仓储模式**:仓储负责与持久化存储交互,隔离领域层和数据访问层。在C#中,仓储通常是一个接口,实现该接口的类负责实际的数据存取操作。 8. **上下文边界**:DDD强调明确界定上下文,每个领域模型都有其特定...
3. **仓储**(Repository):仓储模式是DDD中用于隔离领域层和数据访问层的接口,它提供了一种抽象的数据访问方式,使得领域模型可以独立于具体的数据库技术。 4. **上下文**(Bounded Context):DDD强调在明确...
6. **仓储**(Repository):负责数据的持久化操作,隔离领域层与数据访问层。 7. **界面对话**(UI或Controllers):可能是Web界面或API,用于用户交互。 8. **测试**:包括单元测试和集成测试,确保代码的质量和...
7. **仓储(Repository)**:提供类似于集合的接口,负责领域对象的持久化操作,隔离领域层与数据访问层。 8. **领域服务(Domain Service)**:当业务逻辑无法通过实体和值对象的交互完成时,可以引入领域服务来...
文件"带隔离干爽层的纸尿裤.pdf"虽然名字奇特,但可以推测内容可能涉及了建筑领域中类似纸尿裤材料的创新,可能是关于新型防水材料的研发、应用案例,或者是对现有技术的改进。阅读这份资料,我们可以获取更多关于...
在基础电子领域,变压器是电路设计中不可或缺的元件,它主要负责电压的转换、电气隔离以及信号的耦合。在音响设备中,由于对音质的高要求,通常需要使用带有静电隔离层的变压器,以避免电网中的噪声和其他杂波通过...
隔离层工程是建筑工程中的一个重要环节,它主要用于保护建筑物主体结构免受水分、腐蚀物质以及其他环境因素的侵害。在施工过程中,隔离层的质量控制至关重要,因为它直接影响到建筑物的耐久性和安全性。"隔离层工程...
- **特点**:通过变化的磁场在隔离层上传输信息。 - **问题**:噪声和信号频率可能会重叠,导致高共模阻抗和低差分阻抗的问题。 - **电容耦合技术**: - **优点**:高效率的能量传输和对磁场的良好抗扰性,适合低...
综上所述,这份"行业资料-建筑装置-带防火隔离层现浇混凝土永久性复合保温外模板"的压缩包文件,涵盖了建筑领域的创新技术,对建筑设计师、施工人员和行业研究人员来说,都是一份非常有价值的学习和参考资料。...
本篇将深入探讨交换机的高级特性之一——二层端口隔离,以及如何在华为ENSP(Enterprise Network Simulation Platform,企业网络模拟平台)上实现这一功能。 二层端口隔离,也被称为端口隔离组或VLAN隔离,是一种...
CAN(Controller Area Network)是一种广泛应用的串行通信协议,尤其在汽车、工业自动化和医疗设备等领域。ISO721是CAN标准的一部分,全称为“ISO 11898-2:2015”,它定义了物理层的规范,包括电气特性、传输介质和...
此外,隔离措施也避免了不同层次钢筋间的相互干扰,确保每一层都能充分发挥其作用。 在设计双层或多层钢筋网片隔离固定结构时,工程师需要考虑以下几点: 1. 结构分析:根据建筑物的荷载情况和使用功能,进行详细...
ADI公司的ADuM4160 USB隔离器为实现USB隔离提供了一个创新且成本效益高的解决方案,进一步推动了USB在高要求领域的广泛应用。未来,随着技术的不断进步,我们可以期待更多高效、可靠的USB隔离技术出现,以满足日益...
在信息技术领域,安全是至关重要的一个环节,而利谱隔离卡正是为了提供更高层次的安全保障。本文将深入探讨利谱隔离卡的UEFI(统一可扩展固件接口)驱动及其安装过程,帮助用户在Win10系统下顺利设置和使用。 首先...
标题中的“profibus总线隔离器(RS485隔离)”指的是在工业自动化系统中,用于连接设备的通信协议——Profibus与物理传输层之间的关键组件,即Profibus总线隔离器。它主要功能是将RS485通信网络进行电气隔离,以防止...
标题提及的“一种带隔离层的打字蜡纸”可能是指一种特殊的技术或设备,它在传统的打字蜡纸上增加了隔离层,以提高打字效果或者解决特定问题。这种设计可能适用于印刷、文档制作、档案保存等领域,尤其在早期的文书...
数字隔离器是一种特殊的电子元件,主要用于隔离电子系统中数字信号与模拟信号之间的传输,确保在信号传递过程中,系统与用户之间存在一个高电阻隔离层,从而达到保护用户及电路系统的安全目的。数字隔离器的选型及...
隔离柱,也被称为支柱或支撑柱,是一种在电路板层数之间提供物理间隔和电气隔离的结构。它们通常由金属材料制成,如铜或不锈钢,有时会镀上金、银等导电材料以增强其导电性和抗氧化性。隔离柱在多层电路板中的作用...
BS-USB在软件层面上仅作为一个透明的物理隔离层,与计算机操作系统无关,兼容WindowsXP/2000/Me/98等操作系统。 6. 注意事项 在使用和安装BS-USB产品时,用户应当注意确保设备的正确安装以及适当的驱动程序的安装。...