fa35 / Arbeitszeitdokumentation

Projekt AS
0 stars 0 forks source link

Anmerkung #6

Closed ghost closed 8 years ago

ghost commented 9 years ago

Die Klassen in "Container" sehen aus wie Modelle .... als ob die eher was für einen Ordner "Models" wären, was steht da wohl dahinter?

Ich dachte immer man hätte Controller nur im Webbericht, da sie aus dem MVC-Prinzip kommen und man diese zumindest unter .Net im Webberich einsetzen muss. ^^

micgro42 commented 9 years ago

Mh, die Containerklassen sind zur einfacheren Kommunikation zwischen den Layern gedacht. Was ich vermeiden will ist ein Interface voll mit Funktionen wie

void addEmployee (int id, String firstName, String lastName, Date birthdate, String placeOfBirth, String street, String houseNumber, String zipCode, String city, String profession, int paymentLevel, ...);

Das kann dann alles in das Objekt gepackt werden und dann übergebe ich nur noch ein einzelnes Objekt. Das Beispiel ist jetzt etwas übertrieben für unseren konkreten Fall, aber hoffentlich anschaulich. Die Idee dahinter: http://www.refactoring.com/catalog/introduceParameterObject.html

Aber so ganz sicher bin ich mir damit auch nicht. Was denkst du?

Controller und Model sind für unser Problem vermutlich auch etwas Overkill. Aber ich hatte Spaß daran mich da einzuarbeiten. Vermutlich würde hier auch das Proxy-Entwurfsmuster ausreichen. Das MVC-Muster würde hier funktionieren wenn wir uns das Model als Beobachter des Storage vorstellen und den View als Beobachter des Models. Aber das werden wir so nicht implementieren. Der Controller wird also eine Mischung aus Controller und Proxy werden.

ghost commented 9 years ago

bsp. für Test-Projekt: https://github.com/fa35/mastershop20/tree/master/Source/MasterShop20.Website.Tests

ghost commented 9 years ago

jenachdem mit was für einer Db ihr arbietet und wie ihr die ansteuert, habt ihr die modelle schon über den datacontext -> siehe linq (auch in https://github.com/fa35/mastershop20/tree/master/Source/MasterShop20.Website/Database verwendet)

ghost commented 9 years ago

du kannst auch eigene modelle anlegen, du wirst die aber dennoch irgendwo füllen müssen und ggf. auch wieder aufteilen um ein insert zu machen

micgro42 commented 9 years ago

Tests run: 2, Errors: 0, Failures: 0, Inconclusive: 0, Time: 0.0335695 seconds

Es funktioniert! Yay. Danke.

https://travis-ci.org/fa35/Arbeitszeitdokumentation/builds/88863267