知识卡片
隐式模型也合理
内容
对象建模不必机械映射现实世界。水容器现实中由管道连接,但若管道没有独立行为,显式创建 Pipe 类未必有收益。发散:判断一个概念是否应成类,要看它是否承担稳定职责,而不只是现实中是否存在。
参考来源
- 位置:《你真的会写代码吗-2021》第1章《软件质量和待解决问题》"1.7.2 存储连接"之"选择表达方式"一节(源文件:_epub-src/OEBPS/Text/0010.xhtml)
- 结论依据:原文明确讨论是否引入Pipe类表示容器间连接,指出"这些管道对象包含很少的行为……在权衡了这些原因后,似乎引入这个额外的类的好处并不大",说明现实中存在的实体不必然要建模成类。
- 原始内容:在现实世界中,容器是由管道连接起来的,而管道是真实的物体,与容器有明显的区别。因此,按理说,它们应该分开建模。不过,本章的规范中并没有提到任何Pipe对象……这些管道对象包含很少的行为。每个管道对象将持有两个相连容器的引用,没有其他属性和重要的方法。在权衡了这些原因后,似乎引入这个额外的类的好处并不大。