Ecco un pezzo di codice interessante per aggiungere i due numeri interi, aeb:
NameService nameService = NameService.getSingletonInstance();
OperationService operationService = nameService.resolve(OperationService.class);
ValueFactory factory = OperationServiceFactory.newInstance();
AbstractValue va = factory.newIntegerValue(a);
AbstractValue vb = factory.newIntegerValue(b);
Operator operator = operationService.resolve(AdditonService.class);
AbstractValue vc = operator.performOperation(a, b);
int c = nameService.resolve(IntegerDecorator.class).getValue(vc);
Purtroppo non posso incollare il codice di produzione effettivo che fa un po 'di più (anche se non molto) ma il problema dovrebbe essere ovvio: c'è molto più codice di quello che è richiesto minimamente e nonostante "i pattern di progettazione applicati" è molto difficile leggere o refactoring. Può essere scritto in modo molto più semplice e breve, ma l'autore del codice afferma che non sei professionale per averlo detto. Dov'è il problema con il codice? Non è possibile che non ce ne siano.