2013-04-07 62 views
1

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

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

感谢

回答

1

如果我理解正确的话,你应该有一个黑盒实现从支付提供者的响应,并在同一时间这个模块可以由一家公司使用。确实,你的想法看起来不错。我的建议可能是使用Command设计模式。对于每种类型的响应:错误,已付款,用户付款取消,成功付款等等,每家公司都有自己的实施方案。每个具体的命令都会实现不同的付款状态。像SuccessfulPayment一样,CanceledPayment ...实现接口ICOmmand。这些具体的实现可以留给公司。对于您来说,唯一需要做的就是公司对付款提供商回复的具体处理结果。例如,您将使用ICommand接口,以便在您自己的业务逻辑中继续处理。

+0

谢谢西蒙,是的,我认为它适用于你的建议,我需要阅读有关该模式。 – gastoncs 2013-04-07 23:20:21

+0

我正在使用表网关模式,我看到的东西是如何设置数据从FORM(消息)到TABLE类(客户端)?我发现这种模式在客户端调用了知道如何处理数据的方法,但是我怎么能够将数据从表单推送到表类,在我看到客户端对象已经有数据的示例中。 – gastoncs 2013-04-15 15:50:48