hallo..
ich überlege schon seit wochen, wie ich meine (eigentlich recht einfache) geschäftslogik vom ui richtig schön trennen kann, ohne dass ich die 30-megatonnen-klassenexplosion bekomme.
meine geschäftsobjekte sind teilweise verschachtelt, d.h. ein objekt, dass man im ui bearbeiten können muss, enthält weitere objekte, die man im ui evtl. auf verschiedene weisen bearbeiten können muss, was widerum bedeutet, dass die ui-schicht diese verschachtelung abbilden muss.
ich möchte die abstraktion so gestalten, dass meine geschäftsobjekte im grunde rein garnichts über ihre repräsentation im ui wissen, dann kommt eine schicht, die die informationen des objekts für das ui aufbereitet und möglichst auf strings und collections zurückführt, und am schluss kommt die ui-schicht, bei der eine hierarchie von ui-klassen unterschiedliche repräsentationen für alle möglichen geschäftsobjekte (und deren unterobjekte) liefert. die letzte schicht soll also so allgemein gehalten sein, dass man möglichst viele verschiedene geschäftsobjekte über möglichst wenige (idealerweise ein einziges) interfaces anzeigen lassen kann.
die abstraktion soll auch so beschaffen sein, dass ich mich vorher nicht auf swing, jsf oder gar konsole festlegen muss. das klingt jetzt sicher nach der eierlegenden wollmilchsau, aber ganz so unmöglich ist es wohl doch nicht. ich würde mich über tipps oder links zu guten ressourcen zum thema sicherlich freuen.
was ich bisher benutzt habe (dazu freue ich mich aber auch auf links):
- mvc und gof-patterns
- builder pattern nach holub
javaworld-artikel
was ich mir gerade ansehe:
- reflection api
- annotations
- services und dependency injection
spring