小组件与值边界都在减少彼此耦合
Metz 建议把代码拆成更小的东西;Bernhardt 说明以值作为对象边界,可以替代组件之间的同步方法调用。合读可把“缩小组件规模”和“选择低耦合交互方式”看作两个不同但互补的边界设计手段。
沿同一来源继续阅读
都在写类,却对面向对象给出不同建议 →Metz 建议把类、方法和相互依赖变小;另一位讲者主张转向过程式风格,却明确说问题并不在类本身。两个片段帮助区分语言构造与组织代码的方式。小对象与小接口,不是同一个尺寸 →Metz 谈类和方法的粒度,以及彼此知道得更少;Bloch 谈 API 暴露的功能范围,并建议拿不准时不加入。可以比较内部拆分与外部接口收缩这两个不同设计维度。提防错误抽象,也要让必要抽象足够深 →Metz 提醒保留重复有时比维护错误抽象便宜;Ousterhout 则强调深模块以简单接口隐藏大量能力。把两者并读可帮助判断抽象质量:抽象不应只是消除重复,而应真正提供稳定、足够有价值的能力边界。
对照原文
make smaller thingswe now have values as boundaries.小类或小方法不自动形成良好边界;值边界的好处取决于交互是否适合通过数据传递表达。