사용자가 다른 결제 수단을 선택하게하고 싶습니다. 따라서 지불 방법을 설명하는 클래스가 있습니다. 오브젝트에 다른 정보를 어떻게 모델링합니까?
public class PaymentMethod {
private int id;
private String name;
private String description;
//Constructors, Accessors...
}
는 지금은 사용자의 검색을 잡고 빈을
public class OrderBean {
private List<PaymentMethod> availablePayments;
private PaymentMethod selectedPayment;
private PaymentInformation paymentInfo;
}
내 질문은 얼마나 최고의 모델 PaymentInformation
클래스에. 내가 직면하고있는 문제는 선택한 PaymentMethod에 따라 해당 객체에 보관할 정보가 매우 다를 수 있다는 것입니다. 우리가에 의해 지불
- 신용 카드 번호
- 카드 보안 코드
- 소유자
- 유효 기간
필요
지불 방법 "신용 카드"에 대한 예를 들어우리가 필요로하는 PayPal (나는 정말로 모른다. 단지 나의 요점을 만들기 위해.)
- 이메일 주소 우리는 필요 자동 이체로 지불을 위해
- 소유자
- 계좌 번호
- 여기
내가 와서 몇 솔루션입니다 신용 기관 지금까지 :
3 가지 다른 클래스를 디자인하십시오. OrderBean
에 세 가지 다른 참조가 있고 selectedPayment
에 따라 올바른 참조가 채워 졌는지 확인하십시오.
이러한 세 클래스가 공통 기본 클래스 또는 인터페이스에서 상속하고 OrderBean
에있는 하나의 참조의 실제 유형을 확인하게하십시오.
PaymentMethod
필드와 함께 모든 지불 정보에 대해 하나의 클래스를 만들고 클래스 자체가 PaymentMethod
에 따라 해당 멤버를 검사하게하십시오.
다른 방법이있을 수도 있습니다.
그래서 이것을 구현하는 가장 좋은 방법은 무엇입니까?
몸에 더 좋은 제목이나 더 적절한 태그가 나오면 감사하겠습니다. –
지불 방법 : 신용 카드, 페이팔, ...? –
@TomJonckheere 예 –