Devo aggiungere un nuovo tipo di pagamento a una base di codice esistente. Ciò significa che avrò alcuni metodi in questo modo:
if (old payment type)
process old type of payment
else
process new type of payment
Ora, se questo potesse essere stato determinato in anticipo, avrei questo metodo puntare a un'interfaccia che implementasse un metodo Pay comune e quindi quell'interfaccia sarebbe implementata da una delle due classi. Sfortunatamente, so solo quale metodo il cliente sceglie in fase di esecuzione, il che significa che ho bisogno di un modo per determinare quale ramo utilizzare. C'è un altro modo tranne che per avere il if
s diffuso attraverso il codice?