Command Bus

2018-02-23 16:24 更新

简介

Command bus 提供一个简便的方法来封装任务,使你的程序更加容易阅读与执行,为了帮助我们更加了解使用「命令」的目的,让我们来模拟建立一个可以购买 podcast 的网站。

用户购买 podcasts 的过程中需要做很多事。例如,我们需要从用户的信用卡扣款,将纪录添加到数据库以表示购买,并发送购买确认的电子邮件,或许,我们还需要进行许多验证来确认用户是否可以购买。

我们可以将这些逻辑通通放在控制器的方法内,然而,这样做会有一些缺点,首先,控制器可能还需要处理许多其他的 HTTP 请求,包含复杂的逻辑,这会让控制器变得很臃肿且难易阅读,第二点,这些逻辑无法在这个控制器以外被重复使用,第三,这些命令无法被单元测试,为此我们还得额外产生一个 HTTP 请求,并向网站进行完整购买 podcast 的流程。

比起将逻辑放在控制器内,我们可以选择使用一个「命令」对象来封装它,如 PurchasePodcast 命令。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号