Command Bus

最后更新于:2022-04-01 15:06:46

# 简介 Command bus 提供一个简便的方法来封装任务,使你的程序更加容易阅读与执行,为了帮助我们更加了解使用「命令」的目的,让我们来模拟建立一个可以购买 podcast 的网站。 用户购买 podcasts 的过程中需要做很多事。例如,我们需要从用户的信用卡扣款,将纪录添加到数据库以表示购买,并发送购买确认的电子邮件,或许,我们还需要进行许多验证来确认用户是否可以购买。 我们可以将这些逻辑通通放在控制器的方法内,然而,这样做会有一些缺点,首先,控制器可能还需要处理许多其他的 HTTP 请求,包含复杂的逻辑,这会让控制器变得很臃肿且难易阅读,第二点,这些逻辑无法在这个控制器以外被重复使用,第三,这些命令无法被单元测试,为此我们还得额外产生一个 HTTP 请求,并向网站进行完整购买 podcast 的流程。 比起将逻辑放在控制器内,我们可以选择使用一个「命令」对象来封装它,如 PurchasePodcast 命令。
';