知识卡片
职责的拟人化视角
内容
“职责”不叫行为或功能,是从“角色拥有何种能力”的角度思考的:对象因拥有数据而掌握某领域知识、从而具备完成某功能的能力,进而被赋予参与业务场景的角色、与其他对象协作。以“职责”为核心做 OO 设计,就是通过职责去寻找应履行该职责的角色,再思考角色间如何协作完成完整任务。职责的履行使对象似乎有了生命与意识,可以拟人方式对待:聪明的对象知道自己该履行/拒绝哪些职责、如何协作,而不是只提供数据的愚笨对象。发散:分配职责时代入对象“它凭自己拥有的知识该不该做这件事”,比抽象讨论“这个方法放哪”更快得出合理归属。
参考来源
- 位置:《解构领域驱动设计》附录A A.2.1(源文件:_epub-src/OEBPS/034.xhtml)
- 结论依据:原文从角色能力角度定义职责,并强调对象应是行为的协作者而非数据提供者。
- 原始内容:以“职责”为核心进行面向对象设计,就是要通过职责去寻找应该履行该职责的角色,再思考角色之间如何协作完成一个完整的任务。