DDD架构中:图片数量校验逻辑应置于应用服务还是领域对象?
问题解答
你的逻辑是正确的,具体可以从领域职责的边界来理解:
- 领域对象
Car的核心是封装业务领域专属规则,比如“车辆必须绑定唯一的车架号”“主展示图不能重复关联”这类和业务直接相关的逻辑。而数据库空间限制属于基础设施层面的约束,和业务本身无关——无论允许存3张、10张还是更多,Car的领域逻辑都能正常运转,不会影响业务核心。 - 这类非业务属性的限制校验,应该放在应用服务层(甚至可以进一步下沉到基础设施层的存储拦截逻辑中)。应用层的职责就是协调领域对象与外部资源(比如数据库、文件存储),处理这类跨领域的约束条件,这样能保证领域对象的纯粹性,避免被非业务逻辑污染。
举个实际的场景:如果后续数据库扩容,允许存储更多图片,你只需要修改应用层的校验规则,完全不用改动Car的领域代码,这也符合开闭原则的设计思想。
内容的提问来源于stack exchange,提问作者noobcoder
相关产品推荐
相关产品推荐

