2010-01-28 103 views
1

我正在構建一個軟件產品,客戶將能夠將其系統配置爲使用3或4個預集成支付網關供應商中的任何一個。 (例如:PayPal,Authorize.net等)。多供應商/供應商的典型模式?

客戶將登錄到應用程序,導航到設置,選擇他們有哪個供應商的帳戶,輸入相關帳戶信息並保存。然後,處理的付款交易將經過該特定的支付網關供應商API。

我正在尋找一種模式,用於從付款的實際功能中抽象出來。也就是說,當用戶進行支付時,支付對象被實例化,然後調用Payment-> validate(),然後調用Payment-> save()。我希望這個支付類能夠抽象出將在後端使用哪個特定供應商的細節。

所以這個支付類將需要能夠確定配置的支付網關供應商(完成,不要求幫助),然後實例化該特定支付網關類的對象,並調用相關方法。

所以我問的是,這種類型的東西有什麼典型的設計模式,它叫什麼,你有鏈接到這個好材料。我不是在尋找「幫我寫這段代碼」類型的信息,我正在尋找「教一個人釣魚」類型的信息:-)

謝謝。

回答

1

我會使用GoF書中的策略模式。而不是Payment-> save(),您可以編寫一個AbstractPaymentService來提供驗證(付款)和保存(付款)。對於每個支付服務類型,然後實現AbstractPaymentService(例如PaypalPaymentService)。

+0

謝謝bertolami。什麼是GoF書的全名? – 2010-01-28 14:54:59

+0

我想我回答了我自己的問題:「四人幫」一書「設計模式:可重用的面向對象軟件的元素」。 – 2010-01-28 15:11:20