重构加深理解

突破

何为突破,DDD的实践过程是渐进式的。你的重构与回报不是呈线性关系的。通常会在具体的某个点会出现一个飞跃。这个飞跃很有意义,同时也充满了危险


隐式概念->显式概念

何为隐式概念
就是需求中关注的部分,但是在你的结构中没有体现这一部分。这部分概念就被隐藏起来了。

如何发现隐式概念

  1. 与领域专家探讨
  2. 思考领域的矛盾部分
  3. 查阅书籍验证模型
  4. 发现一些约束

什么需要被转换成显式

  1. 特定的领域概念
  2. 约束条件
  3. 领域关键过程

Tips
何时约束需要单独提取成一个类

  1. 计算约束的数据从定义上并不属于这个对象
  2. 相关规则在不同的类中重复出现
  3. 很多设计和需求谈论都围绕这些约束,而这段代码隐藏在过程代码中

柔性设计

目的
方便重构,方便开发人员开发

方式

  1. 命名需要表意
  2. 方法无副作用(不需要一层一层的观察它的行为)
  3. 可以使用断言明确表示
  4. 低耦合
  5. 闭合操作(返回类型与参数类型相同)

设计模式在模型中的应用

从代码层面它是技术设计模式,从模型上看它是概念模型。

策略模式
通过策略模式分离不同的概念。侧重点在表示概念的能力。

组合模式
使用组合模式可以根据业务组合不同的对象。


重构加深理解

关注3个点

  • 以领域为本
  • 用一种不同的方式看待事物
  • 始终坚持与邻域专家对话
    因为模型与领域不同才会开始领域的重构。

何时重构

  1. 设计没有表达团队对领域的最新理解
  2. 重要的概念被隐藏在设计中
  3. 发现一个能令某个重要的设计部分变得更灵活的机会
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,807评论 25 709
  • 一 我算一算时间,回到四川有七年了。 先后生活过三个小镇,两个城市。每个镇子都有一颗黄角树,每颗树都像个英雄一样伟...
    唐冲阅读 1,553评论 0 2
  • 琦啊spring阅读 689评论 0 0
  • 9.1日上升 是因更新版本至数据提升 扫码来源:安卓和iOS在来源上平分秋色机型分布:iOS比安卓多的原因1新用...
    张天真人阅读 2,394评论 0 0