2010-02-23 2 views
2

У меня есть запрос, связанный с отношением между объектами.Как связать данные о клиенте и платежах

Сценарий:

Детали оплаты - а. Кредитная карта b. Сберегательный счет c. Проверить

Теперь перед покупкой любого товара клиент должен иметь любую из вышеуказанных деталей платежа. Как связать детали оплаты с клиентом.

Может ли один объяснить с примером ...

Спасибо заранее.

+0

Вы знаете, что данные платежа, вероятно, должны быть связаны с транзакцией/счетом-фактурой, так как один и тот же клиент может иметь несколько платежей или оплатить один и тот же счет несколькими способами. –

+0

Правильно, моя забота заключается в том, как связать платежные реквизиты с транзакцией или счетом. –

ответ

3
public interface IPaymentType 
{ 
    bool Pay(double amount); 
} 

public class CreditCardPType : IPaymentType 
{ 
    double limit; 
    // implement Pay() 
}  
public class Cheque: IPaymentType 
{ 
    int accountNumber; 
    // implement Pay() 
} 

public class Customer 
{ 
    public IPaymentType paymentType { get; set; } 
} 


Customer customer = new Customer(); 
customer.paymentType = new CreditCardPType(); 
+0

Это хорошо для кредитной карты Тип оплаты, что еще в случае проверки. Как кредитная карта, так и чек имеют несколько разных атрибутов. –

+0

вывести два других класса из интерфейса IPaymentType –

+0

определить поведение, такое как Pay() или что-то в интерфейсе. Храните атрибуты отдельно от ваших классов. Сделали выпуски –

0

Не уверен, что правильно поставил вопрос, возможно, у вас может быть класс Customer, который имеет атрибут «modeOfPayment», и это может быть любой из возможных вариантов. Инициализировать этот атрибут в конструкторе класса Customer.

В качестве альтернативы может храниться информация о платежах в таком классе, как «Заказ», который может быть лучшим вариантом. Клиент может выбрать оплату заказа с использованием кредитной карты (скажем), а для некоторых он может выбрать оплату другими способами.

0

Добавить свойство Payment Detail/поле в свой объект Customer. Это будет режим платежей по умолчанию, когда клиент покупает продукт.

Смежные вопросы