Comment pensez-vous sur le code d'accès aux données comme ceci:Comment trouvez-vous la partie d'accès aux données (SQL Server) de principes Agile, modèles et pratiques en C#
public void AddCusotmer(Cusotmer customer)
{
//save customer into database
...
// save payment type
SavePaymentType(customer);
//save other data
...
}
private void SavePaymentType(Customer customer)
{
if(customer.PaymentType is XXXPayment)
{
var payment = customer.PaymentType as XXXPayment;
//save payment to XXXPayments table in db
...
}
else if(customer.PaymentType is YYYPayment)
{
var payment = customer.PaymentType as XXXPayment;
//save payment to YYYPayments table in db
...
}
...
}
Personnellement, je ne suis pas se sentir très bien avec des codes comme celui-ci (en utilisant "est" pour détecter le type pour décider quoi faire), mais Robert Martin l'auteur dit que c'est OK car c'est seulement dans DAL, donc une petite violation d'OCP est acceptable.
Comment pensez-vous?
Oui, je me sens mieux avec votre solution aussi. – deerchao