Exemple #1
0
 public ProductionFacadeWithoutNotifier(IPhoneRepository phones, IWarehouseRepository warehouses, IImportFeeCalculator importCalculator,
                                        IProductionFactory productionFactory, IPhoneSupplier phoneSupplier)
 {
     this.phones            = phones;
     this.warehouses        = warehouses;
     this.importCalculator  = importCalculator;
     this.productionFactory = productionFactory;
     this.phoneSupplier     = phoneSupplier;
 }
Exemple #2
0
 public ProductionFacadeWithNotifier(IPhoneRepository phones, IWarehouseRepository warehouses, IImportFeeCalculator importCalculator,
                                     IProductionFactory productionFactory, IPhoneSupplier phoneSupplier, IPhonesSuppliedListener listener)
 {
     this.phones            = phones;
     this.warehouses        = warehouses;
     this.importCalculator  = importCalculator;
     this.productionFactory = productionFactory;
     this.phoneSupplier     = phoneSupplier;
     if (null != listener)
     {
         this.phoneSupplier.RegisterPhonesSuppliedListener(listener);
     }
 }
 // SOLID Principles: Order processor class close for modification and open for extensibility
 // if we need t0 add shipping calculator for exaple we just add a new Interface
 // seperation of concerns, open for extens/closed for modification and Interface segragation.
 public OrderProcessor(ITaxCalculator taxCalculator, IImportFeeCalculator importFeeCalculator)
 {
     _taxCalculator       = taxCalculator;
     _importFeeCalculator = importFeeCalculator;
 }