知识卡片
克制过度抽象:职责为基础、抽象是加分
内容
封装变化的关键在于识别变化点——只有对可能发生变化的功能进行抽象才是合理设计(如促销/支付/订单验证规则易变,用规格模式 SellingPolicy 分离并抽象)。同时要克制过度抽象,不要考虑太多不切实际的扩展性与灵活性、避免过度设计(未来不可预测)。推荐次序:先按信息专家模式合理分配职责,发现超过一个变化点后按单一职责原则分离职责形成协作,再考虑是否对分离出去的变化进行抽象。抽象要有前瞻性又必须恰如其分,最好是水到渠成的决策。发散:职责是设计的基础分、抽象是加分项;没识别到真实变化点就引入接口/策略,是负分而非加分。
参考来源
- 位置:《解构领域驱动设计》附录A A.2.2(源文件:_epub-src/OEBPS/034.xhtml)
- 结论依据:原文强调抽象须针对真实变化点、须克制过度设计,并给出职责优先、抽象加分的设计次序。
- 原始内容:职责是良好设计的基础,抽象就是对设计加分……抽象应保持足够的前瞻性,又必须恰如其分,最好是水到渠成的设计决策。