# MVC - Listener in Controller Ebene



## bygones (9. Nov 2004)

Immer wieder sehe ich bei MVC Programmen, dass die Leute die Listener an sich in eine eigene Datei packen und sie sie der Controller Ebene zuweisen. Meiner Ansicht nach muss das nicht sein, da ich der Meinung bin der Listener an sich ist Sache des Views, da der View auf die einzelen Ereignisse reagieren soll. Des Weiteren halte ich es für nicht sinnig, wenn View interne Aktionen ausgegliedert werden (also Aktionen, die Änderungen im View unabhängig der Daten betreffen... vom beenden bis zur neuzeichnung des Views)....
Sobald natürlich der Listener Aktionen ausführen müsste, die die Model Klasse betreffen, dann muss der Controller zwischengeschaltet werden. Dies sollte dann aber per Delegation an den Controller gehen....

Daher: Listener != Controller !

Was meint ihr ??


----------



## Sky (9. Nov 2004)

Ich kann nur unterstreichen, was Du schon gesagt hast: Alles was _"View-intern"_ passiert, geht den Controller nix an. 

Alles, was das Model betrifft, regelt der Controller.


----------



## Beni (9. Nov 2004)

Solche Patterns werden ja auch nie 1:1 in Programme uebernommen, also wuesste ich nicht, was man gegen dbacs Ansatz (den ich sowieso logisch durchdacht finde) hervorbringen koennte.


----------



## Pulvertoastman (9. Nov 2004)

Vielleicht solltest du dir noch mal die Beschreibung zum MVC Pattern durchlesen, z.B. hier:
http://java.sun.com/blueprints/patterns/MVC-detailed.html

Aufgabe des Controllers ist primär die Abhandlung von Interaktionen mit dem View.


----------



## Student (10. Nov 2004)

ich behaupte mal, dass Beni schon weiß, was ein MVC ist und wie er arbeitet.

der reinen lehre nach: listener != controller
in der praxis wird es auch hier öfters mal gemacht .. frei nach dem argument "ist einfacher" :roll:

nunja.
ich versuche da konsequent zu sein.

denn ich kann mich immer wieder freuen, wenn ich so ein klasse MVC gebastelt habe


----------



## dotlens (10. Nov 2004)

es ist nicht unbedingt einfacher die Listener im Controller zu machen, denn dann musst du wieder Referenzen übergeben und so weiter. 

meiner Meinung nach gehören Listener nicht in den Controller, jedoch die aktionen die sie ausführen meistens (ausser billigen if abfragen)


----------



## Student (10. Nov 2004)

dotlens hat gesagt.:
			
		

> es ist nicht unbedingt einfacher die Listener im Controller zu machen, denn dann musst du wieder Referenzen übergeben und so weiter.


ja .. aber eben das finden ja manche einfacher.

keine gedanken machen, sondern einfach schnell die referenz mitübergeben. fertig.  :roll:


----------



## DesertFox (10. Nov 2004)

Aber wärs denn so schlimm die Listener in den Control Teil zu schieben, oder hätte das irgentwelche nachteile, ausser die andere Strukturierung des Quellcodes


----------



## bygones (11. Nov 2004)

DesertFox hat gesagt.:
			
		

> Aber wärs denn so schlimm die Listener in den Control Teil zu schieben, oder hätte das irgentwelche nachteile, ausser die andere Strukturierung des Quellcodes


ich denke keine performance probleme... aber wie gesagt, wenns darum geht View interne aktionen zu regeln, warum in den Controller ??


----------



## L-ectron-X (11. Nov 2004)

Ich habe es bisher nur einmal ganz in die drei Ebenen aufgeteilt.
Da wollte ich, dass man das GUI austauschen kann. Ansonsten arbeiten Controller und View bei mir direkt zusammen.


----------

