-
在这个场景中,我该如何应用DDD中的specification模式,我该如何设计这个领域模型5
有一个名单对象,用ArrayList保存一份客户名单,还有一些其他字段,描述这份名单.
用户在持久化这个领域对象前,系统必须检查以下业务规则:
1.名单中的人数必须大于3人
2.名单中的人数必须小于等于20人
如果违反了业务规则1,则在页面上提示"客户名单人数过少"
如果违反了业务规则2,则在页面上提示"客户名单人数过多"
我设计了2个specification,但这两个规格的判断,我应该放在哪?
是直接放在保存里,如果违反了响应的规格就抛出异常,然后捕获异常,再在页面上显示相应提示
还是,直接在control层中使用这两个规格进行业务逻辑的判断,通过就保存,不通过就返回提示
还是单独做个检查类什么的,一般正规的做法应该是怎么样的,想的头发都白了.
按照道理来说,不应该用异常来控制业务逻辑的走向,但把业务逻辑的判断直接放在control层中,貌似也违背了DDD的原则啊,我该怎么做啊.还有,在control层中,调用领域模型的代码要怎么写才更自然啊.
总之问题是,直接保存这个对象,很简单.control层直接调用领域模型中的save方法就可以了.
但是如果要在做这个操作前先判断,根据判断的不同要有不同的提示,或者判断通过了,保存对象,这个实在理不清头绪.这个判断要如何封装?还是不需要封装,直接写在control层中?2012年1月26日 16:33
目前还没有答案
相关推荐
通过学习这个DDD案例,开发者可以更深入地理解如何在实际项目中应用DDD,包括如何定义领域模型,如何组织业务逻辑,以及如何设计和实现与数据库的交互。这对于提升软件开发的效率和质量,特别是面对复杂业务场景时,...
战术设计则关注如何在每个领域内构建模型,包括实体、值对象、工厂、仓储、聚合根等设计模式。 在实践中,DDD通常结合以下原则和技术: 1. ** Ubiquitous Language**:领域和开发团队共享的术语,用于明确沟通和...
6. **菱形对称架构**:这个标签指的是在DDD中的特定架构模式,即“Clean Architecture”的一种变形。在这个架构中,业务逻辑(领域层)位于中心,呈菱形状,周围环绕着应用层、基础设施层和表示层。这种设计强调领域...
领域驱动设计(DDD)是一种软件开发方法,由Eric Evans在其同名著作《领域驱动设计》中提出。DDD致力于解决复杂业务系统的开发问题,通过将业务领域专家与开发人员紧密合作,将复杂的业务逻辑转化为可执行的软件模型...
DDD在国内现象是个什么情况? DDD从战略设计到战术设计概览 第2章 领域分析模型 核心域,支撑子域,通用子域 微服务和DDD是什么关系? 传统模式下如何合理的划分各种域 基于DDD的方式进行域划分 什么是通用语言 什么...
领域驱动设计在系统重构中的应用实践 如何让DDD落地 淘宝应用架构升级——反应式架构的探索与实践 微服务的容器化实践 物联网平台的反应式设计 演进式架构的平台化落地 以DDD思想为基础的轻量级业务中台开发框架 用...
分享我对领域驱动设计(DDD)的学习成果 化繁为简--DDD驱动复杂业务软件架构的演进 基于DDD的领域建模中的模版和工具实践 基于FP的DDD实践分享 架构分层模型适配 金融支付系统的改造之路 可视化的遗留系统微服务改造 ...
在软件开发领域,尤其是企业级应用中,领域驱动设计(Domain-Driven Design,简称DDD)是一种重要的设计思想。本文将详细探讨DDD中的“充血模式”(Bounded Contexts with Rich Domain Models),以及如何通过引入...
DDD领域驱动设计&中台实践资料合集,共20份。 DDD促进传统架构微服务转型 化繁为简--DDD驱动复杂业务软件架构的演进 基于FP的DDD实践 基于DDD的领域建模中的模版和工具实践 架构分层模型适配 金融支付系统的改造之...
- 领域模型设计:采用充血模型而非贫血模型,并且在设计中融合设计模式、流程编排、事件驱动等元素。 - 强化单测:确保代码的质量,通过单元测试来保证各个领域模型的正确性和稳定性。 - 持续重构:在业务生命周期内...
DDD则不同:它像是更小粒度的迭代设计,它的最小单元是领域模型(Domain Model),所谓领域模型就是能够精确反映领域中某一知识元素的载体,这种知识的获取需要通过与领域专家(Domain Expert)进行频繁的沟通才能将专业...
在DDD中,“模型提炼”是一个重要的环节,它涉及如何从复杂的业务逻辑中抽取出核心领域模型,从而简化系统设计并提高软件质量。 #### 核心领域模型的重要性 在业务系统中,核心领域模型是那些最具价值、最能体现...
**领域驱动设计(DDD)**是由Eric Evans在2004年提出的软件开发方法论,旨在通过建立清晰的领域模型来应对复杂软件系统的挑战。这种方法强调业务领域的深入理解和建模,确保软件开发能够更好地服务于业务需求。 ###...
在实际应用中,DDD通常与中台架构结合,构建灵活、可复用的服务,以支持企业级的复杂业务场景。 DDD中的模板和工具是实现领域建模的重要辅助手段。模板可以帮助开发者遵循最佳实践,快速搭建起模型的框架,而工具则...
领域驱动设计(Domain-Driven Design,简称DDD)是一种软件开发方法论,由Eric Evans在其同名著作中提出,旨在帮助开发者更好地理解和处理复杂的业务逻辑,通过深入挖掘领域知识来构建高质量的软件系统。DDD的核心是...
领域驱动设计(Domain-Driven Design,简称DDD)是由软件开发专家Eric Evans在其2003年出版的同名书籍《领域驱动设计》中提出的一种软件开发方法论。它强调通过深入理解和表达业务领域的核心概念来驱动软件开发过程...
DDD领域驱动设计和中台实践资料合集
DDD领域驱动设计&中台实践资料(20份): DDD促进传统架构微服务转型(42页).pdf DDD在旅游电商架构演进中的实践(47页).pdf DDD实践中的那些坑(28页).pdf DDD的为与不为(25页).pdf Every Entity as A ...
领域驱动设计(DDD)是一种软件开发的方法论,由软件大师Eric Evans在其2004年发表的同名著作《领域驱动设计》中提出。DDD的核心思想是将软件开发聚焦于业务领域的复杂性,通过深入理解领域概念,建立领域模型,并在...
DDD2019领域驱动设计大会是一次专门探讨这一主题的会议,旨在帮助开发者更好地应用DDD原则和实践到实际项目中。PPT全套可能包含了大会的主要演讲、讨论和工作坊的材料,涵盖了DDD的多个关键方面。 在DDD中,核心...