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