我正在构建一个软件产品,客户可以将其系统配置为使用3个或4个预集成支付网关供应商中的任何一个。 (例如:PayPal,Authorize.net等)。
客户将登录应用程序,导航到设置,选择他们拥有帐户的供应商,输入相关帐户信息并保存。然后,处理的支付交易将通过该特定支付网关供应商API。
我正在寻找一种模式,用于将其从支付的实际功能中抽象出来。也就是说,当用户进行支付时,实例化Payment对象,然后调用Payment-> validate(),然后调用Payment-> save()。我希望这个Payment类抽象出将在后端使用哪个特定供应商的细节。
因此,这个Payment类需要能够确定配置的支付网关供应商(完成,不要求帮助),然后实例化该特定支付网关类的对象,并调用相关方法。
所以我要问的是,这种类型的东西是否有典型的设计模式,它叫什么,你有没有关于这方面的好材料的链接。我不是在寻找“帮我写这段代码”的信息类型,我正在寻找“教人钓鱼”类型的信息: - )
感谢。
答案 0 :(得分:1)
我会使用GoF书中的策略模式。而不是Payment-> save(),你编写一个AbstractPaymentService,提供验证(付款)和保存(付款)。对于每种支付服务类型,您然后实现AbstractPaymentService(例如PaypalPaymentService)。