2

我正在构建一个软件产品,客户可以在其中配置他们的系统以使用 3 或 4 个预集成支付网关供应商中的任何一个。(例如:PayPal、Authorize.net 等)。

客户将登录应用程序,导航到设置,选择他们拥有帐户的供应商,输入相关帐户信息并保存。然后,处理的支付交易将通过特定的支付网关供应商 API。

我正在寻找一种模式来将其从付款的实际功能中抽象出来。也就是说,当用户进行支付时,会实例化一个 Payment 对象,然后调用 Payment->validate(),然后调用 Payment->save()。我希望这个 Payment 类抽象出将在后端使用哪个特定供应商的详细信息。

所以这个支付类将需要能够确定配置的支付网关供应商(完成,不寻求帮助),然后实例化该特定支付网关类的对象,并调用相关方法。

所以我要问的是,这种类型的东西是否有典型的设计模式,它叫什么,你是否有关于这方面的好材料的链接。我不是在寻找“帮我写这段代码”类型的信息,我在寻找“教人钓鱼”类型的信息 :-)

谢谢。

4

1 回答 1

2

我会使用 GoF 书中的策略模式。您编写一个提供验证(付款)和保存(付款)的 AbstractPaymentService,而不是 Payment->save()。对于每种支付服务类型,您需要实现 AbstractPaymentService(例如 PaypalPaymentService)。

于 2010-01-28T14:40:42.383 回答