前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[答疑]是不是直接写“发红包”而不是“请求微信发红包”

[答疑]是不是直接写“发红包”而不是“请求微信发红包”

作者头像
用户6288414
发布2022-10-31 16:57:27
3990
发布2022-10-31 16:57:27
举报
文章被收录于专栏:软件方法

DDD领域驱动设计批评文集>>

《软件方法》强化自测题集>>

《软件方法》各章合集>>

jeri 2022-6-29 9:54

这里是不是直接写“发红包”而不是“请求微信发红包”?业务序列图时,箭头表示A请求B, 分析序列图是否也有这个意思?

UMLChina潘加宇

道理“A请求B做某事”是一样的,你自己理一理。

控制类 请求 微信接口 请求微信发红包,边界类的责任就是“请求微信发红包”而不是“发红包”,“发红包”是微信系统的责任。

或者说,我们要流血流汗为边界类写的是“请求微信发红包”的代码,而不是“发红包”的代码。

类似于

老板 请求(命令) 会计 请求税务局办理手续,会计的责任只是去“请求税务局办理手续”

序列图消息上的很多“请求”是多余的废话,那是因为对应的“做某事”很多时候不是“请求****”。

以下是本问题的展开:

问题中有疑惑,分析序列图是否有什么区别?上面讲了,“A请求B做某事”这个道理是一样的,但这个“做某事”之所以是“请求****”,确实和分析序列图有关,因为我们把系统分解了,其中有一个边界类,专门负责封装“请求微信发红包”的责任。

下面这个可以:

如果我们不分解目标系统,就变成:

可能有的同学会下意识反应,咦?“请求A系统做某事”哪里去了,是不是跑前面去了,像这样:

如果有这样的反应,那就要警惕了。我经常批评的各种“DDD创新”吃什么拉什么、一一对应、废话连篇刷工作量就是这样的思想导致的。

指向目标系统的消息是该系统为其他系统提供的服务(用例),例如“下单”、“叫车”。目标系统里面怎么分解的,是不是分了几个类,到底有没有一个类专门负责“请求A系统做某事”,这就不知道了。

当然,如果目标系统的价值确实就是给A系统当一层外皮,那么指向它的消息写“请求A系统做某事”就是合适的。

[推荐升级]23套UML+EA和StarUML的建模示范视频-全程字幕(2022.6.1更新)

7月7-10晚网课:软件需求设计方法学全程实例剖析

7月21-24晚剔除“伪创新”的领域驱动设计-网络公开课

《软件方法》书中自测题-题目全文+分卷自测(1-8章)16套111题

《软件方法》强化自测题集110题

CTO也糊涂的常用术语:功能模块、业务架构、用户需求……[20210217更新]

如何选择UMLChina服务


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 UMLChina 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档