MVC序列图中删除消息应指向User Model还是Users Model?
两种设计方案的适用场景
两种绘制方式都符合UML序列图的规范,核心区别是你想要表达的架构抽象层级:
方案1:调用Users Model集合的deleteUser()方法(你当前的设计)
- 适用场景:你希望隐藏单条用户模型的底层操作细节,重点表达「集合层统一管理全量用户数据」的架构逻辑,比如你采用的是全局状态管理、仓库(Repository)模式时,上层UsersView不需要感知单个User Model的存在,只需要和用户集合容器交互即可。这种设计更贴近上层业务调用的实际逻辑,如果你的序列图受众是前端业务开发,不需要了解底层数据操作细节,现有设计完全合理。
方案2:删除消息指向单个User Model
- 适用场景:你需要展示完整的底层执行链路,比如你的架构采用Active Record模式,单条User Model自身就携带删除方法,或者你需要明确体现删除操作的最终作用对象。这种设计更适合给全栈、后端开发人员看,能清晰体现数据操作的完整执行流程。
折中建议
如果需要同时覆盖两层逻辑,可以在UsersView调用Users Model的deleteUser()之后,再加一步Users Model向对应单个User Model发送删除消息的步骤,既能体现上层调用逻辑,也能明确底层操作对象。
内容的提问来源于stack exchange,提问作者Yeshan Santhush
相关产品推荐
相关产品推荐

