2010-01-28 6 views
1

고객이 3 또는 4 사전 통합 지불 게이트웨이 공급 업체 중 하나를 사용하도록 시스템을 구성 할 수있는 소프트웨어 제품을 구축 중입니다. (예 : PayPal, Authorize.net 등).여러 공급 업체/공급 업체의 일반적인 패턴?

고객이 애플리케이션에 로그인하고 설정으로 이동하여 계정이있는 공급 업체를 선택하고 관련 계정 정보를 입력하고 저장합니다. 그런 다음 처리 된 지불 트랜잭션은 특정 지불 게이트웨이 공급 업체 API를 통해 처리됩니다.

나는 이것을 지불하는 실제 기능에서 이것을 추상화하는 데 사용할 패턴을 찾고 있습니다. 즉, 사용자가 결제를하면 Payment 객체가 인스턴스화 된 다음 Payment-> validate()가 호출되고 Payment-> save()가 호출됩니다. 이 지불 클래스가 특정 벤더가 백엔드에서 사용되는 세부 사항을 추상화하고 싶습니다.

이 지불 클래스는 구성된 지불 게이트웨이 공급 업체를 결정할 수 있어야합니다 (완료 되었음, 도움을 요청하지 않음). 그런 다음 특정 지불 게이트웨이 클래스의 객체를 인스턴스화하고 관련 메소드를 호출 할 수 있어야합니다.

그래서 제가 묻는 것은이 유형의 전형적인 디자인 패턴이 무엇인지, 그것이 무엇인지, 그리고 이것에 대한 좋은 자료에 대한 링크가 있는지입니다. 나는 "이 코드를 작성하는 데 도움이되는"정보를 찾고 싶지 않다. 나는 "낚시를하는 남자를 가르쳐라"라는 정보 유형을 찾고있다 :-)

고마워.

답변

1

GoF 책의 전략 패턴을 사용합니다. Payment-> save() 대신 validate (지불) 및 save (지불)를 제공하는 AbstractPaymentService를 작성합니다. 그런 다음 각 지불 서비스 유형에 대해 AbstractPaymentService (예 : PaypalPaymentService)를 구현합니다.

+0

감사 bertolami. GoF 서적의 전체 이름은 무엇입니까? –

+0

"Gang of Four"책 "디자인 패턴 : 재사용 가능한 객체 지향 소프트웨어의 요소"에 대한 내 자신의 질문에 대답했다고 생각합니다. –

관련 문제