公司网站开发说明介绍,上海松江做网站建设,做公司网站要去哪里找人做,摄影网站的建设的论文目录
定义
最佳实践
不好案例 定义 聚合类是实体的升级#xff0c;是由一组与生俱来就密切相关实体和值对象组合而成的#xff0c;这整个组合的最上层实体就是聚合。Aggregate(聚合#xff09;是一组相关对象的集合#xff0c;作为一个整体被外界访问#xff0c;聚合根…目录
定义
最佳实践
不好案例 定义 聚合类是实体的升级是由一组与生俱来就密切相关实体和值对象组合而成的这整个组合的最上层实体就是聚合。Aggregate(聚合是一组相关对象的集合作为一个整体被外界访问聚合根Aggregate Root是这个聚合的根节点。 引入聚合的目的是通过合理的对象边界控制对象之间的关系在边界内保证对象的一致性与完整性在边界外作为一个整体参与业务行为的协作。 最佳实践 1.如何划分聚合的边界 【不变量与一致性】聚合暗含了一致性边界在一致性边界之内建模真正的不变条件代表了领域逻辑中的业务规则约束和事务一致性。在边界之外使用最终一致性思考业务可接受的不一致时间。从业务约束的深入分析中我们有可能会突破对一致性边界的既有认知就能够设计出小聚合。 【完整性与独立性】推荐设计小聚合好的做法是使用根实体来表示聚合只包含最小数量的属性或值对象属性那些与其他属性保持一致的属性。从经验来看大量的聚合都可以建模成单个实体根实体。过分的小聚合危害也大。完整性与独立性之间的平衡聚合是否足够完整聚合中的实体是否会被调用者单独调用。完整性除了通过聚合内部来保证也可以通过聚合之间的关系来保证。 【质量的约束】判定为一个聚合整体需要估算聚合成本包括聚合内部的对象数量对性能和内存消耗的影响等业界对此也有新的解法。 2.聚合的行为原则 由聚合根统一对外提供履行该领域概念职责的行为方法实现内部各个对象之间的行为协作。只有聚合根才是访问聚合边界的唯一入口。注意对于读写分离来讲读场景可以直接跳过聚合来读取其对象如按订单项的统计等。 3.聚合的协作 关联关系。通过唯一标识引用其他聚合而不是直接的对象引用此时关联的聚合是不会被即时加载的不必担心性能问题。 依赖关系。一个聚合作为另一个聚合方法的参数形成职责的委派。
不好案例 1.臃肿的聚合开发人员引入的错误的不变条件设计出庞大的聚合根时常出现事务失败、性能或可伸缩性问题。不要包含不必要的属性尤其是为了展示查询类场景需要。 2.某个用例需要修改多个聚合实例将多个聚合组合起来搞个大聚合。需要带着批判态度来看挑战假设往往通过聚合间的最终一致性来实现要思考可能接受的更新延迟时间。 3.聚合根内直接依赖资源库或外部服务。聚合根内直接复用上游上下文的领域对象。