interface IInvoiceProcessor
void ProcessInvoice(decimal amount);
class DomesticInvoiceProcessor: IInvoiceProcessor
private IInvoiceProcessor _invoiceProcessor;
public AccountingSystem(IInvoiceProcessor invoiceProcessor)
_invoiceProcessor = invoiceProcessor;
_invoiceProcessor.ProcessInvoice(10000);
IInvoiceProcessor domesticInvoiceProcessor = new DomesticInvoiceProcessor();
AccountingSystem domesticsystem = new AccountingSystem(domesticInvoiceProcessor);