【问题标题】:Typical Pattern for multiple providers/vendors?多个供应商/供应商的典型模式?
【发布时间】:2011-01-10 10:39:18
【问题描述】:

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

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

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

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

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

谢谢。

【问题讨论】:

    标签: design-patterns provider vendors


    【解决方案1】:

    我会使用 GoF 书中的策略模式。代替 Payment->save() 你编写了一个提供 validate(payment) 和 save(payment) 的 AbstractPaymentService。然后为每种支付服务类型实现 AbstractPaymentService(例如 PaypalPaymentService)。

    【讨论】:

    • 谢谢贝托拉米。 GoF 书的全名是什么?
    • 我想我已经回答了我自己的问题:“四人帮”一书“设计模式:可重用的面向对象软件的元素”。
    猜你喜欢
    • 1970-01-01
    • 2014-12-04
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 2013-10-29
    • 1970-01-01
    相关资源
    最近更新 更多