1

我想创建一个支付模块,这个模块将有一个用户可以支付产品的表单,支付完成后我想将支付信息保存在几个数据库表上。我想在不同的公司中使用这个模块,每个公司以不同的方式处理持久数据,例如一个将数据保存在一个表中,另一个保存在两个或树表中,我的想法是实现一个观察者模式,其中发布者(作为支付类)可以将付款信息推送到表类(作为订阅者)中,以便这些类可以将数据保存到他们的表中。

这是使用正确的模式吗?有什么建议么?

谢谢

4

1 回答 1

1

如果我对您的理解正确,您应该有一个来自支付提供商的响应的黑盒实现,并且有一次该模块可以被一家公司使用。你的想法看起来不错,确实。我的建议可能是使用命令设计模式。对于每种类型的响应:错误、拒绝付款、用户付款取消、付款成功等,每个公司都有自己的实现。并且每个具体的命令都会执行不同的支付状态。与 SuccessPayment 一样,CanceledPayment ... 实现了 ICOCommand 接口。这些具体的实现你可以留给公司。对您而言,唯一需要的是公司对支付提供商响应的特定处理结果。

于 2013-04-07T11:41:28.797 回答