Closed matthiaszoellner closed 8 years ago
Die Idee mit AccountingFactory
ist in der Form nicht notwenig. Die entsprechenden Methoden passen super in AccountingFacade
rein. Habe mal eine Beispielimplementierung für OpenAccountCommand
hochgeladen
Die aktuelle Lösung, in der eine einzige Klasse (z.B. AccountingFacade) die Implementierung mehrerer Commands enthält, führt aus meiner Sicht zu vermeidbaren Designproblemen.
Folgender Plan für ein CommandHandler Interface:
Jedes Command lässt sich so unabhängig implementieren, die Validierung wird vom Handling getrennt.
Anstelle von AccountingFacade könnte eine Factory Klasse stehen, die die einzelnen CommandHandler Implementierungen zurückgibt und sich um Dinge kümmern kann wie z.B., dass Validate immer vor Handle aufgerufen wird.
Hierbei ist
OpenAccountCommandHandler
die eigentliche Implementierung undValidatingHandlerDecorator
ein Wrapper, der dafür sorgt, dass Validate IMMER vor Handle aufgerufen wird. Auf ähnliche Weise lassen sich dann auch andere Querschnittaufgaben per Decorator einpflegen - z.B. die UnitOfWork Injection.