Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] HMVC - 2 verschiedene Interpretationen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] HMVC - 2 verschiedene Interpretationen

    Hallo,

    Ich "streite" mich mit jemandem darüber was HMVC jetzt eigentlich ist:

    Meine Ansicht:
    Ein Controller A lädt einen anderen Controller B(z.B. über Request::execute('b')) welcher durch Models und Views eine Ausgabe generiert welche nicht ausgegeben sondern an den Controller A zurückgegeben wird und dort weiterverwendet werden kann, z.B. in eine View als Navigation eingesetzt werden kann wobei diese gesamte Navigation eben durch Controller B generiert wurde.

    Seine Ansicht:
    Laut seiner Beschreibung glaube ich zu wissen dass er meint dass meine Interpretation von HMVC noch nicht vollständig ist, sondern auch die Klassenhirarchie dazu gehört, also dass es eben eine Controller oder Model Klasse gibt von der alle anderen Controller- oder Model-Klassen abstammen. (mit B extends A, dann vlt. C extends B usw) was meinet Meinung nach schon zu einem gescheiten Aufbau gehört, aber nicht explizit etwas mit HMVC zu tun hat.

    Was ist jetzt korrekt?

    Vielen dank im Voraus.

    greez

    bitsnack
    Programming today is a race between developers striving to build better idiot-proof programs, and the universe trying to produce better idiots. So far, the universe is winning.

  • #2
    also dass es eben eine Controller oder Model Klasse gibt von der alle anderen Controller- oder Model-Klassen abstammen
    Das hat direkt mit hmvc rein gar nichts zu tun...

    Kommentar


    • #3
      Hallo bitsnack,

      ihr sprecht von unterschiedlichen Dingen. HMVC ist konzeptionell ein Baum von Elementen, die für sich genommen alle das MVC-Pattern implementieren. Dass alle Baum-Elemente von einem gemeinsamen Über-Element abstammen müssen, beschreibt das Composite Pattern. Beide können bei einer Implementierung von HMVC Anwendung finden, müssen sie aber nicht. Fakt ist jedoch, dass HMVC nicht heißt, dass der Baum von MVC-Elementen der Vererbungs-Hierarchie entsprechen müssen - auch nicht in Teilen!

      An der Implementierung des HMVC-Pattern des APF sind mehrere Komponenten beteiligt:
      • Page-Controller
      • Page (Root-Element des Baums)
      • Document (Klasse, von der alle Baum-Elemente ableiten, jedoch nicht in einer direkten Hierarchie-Parallele zum Baum)
      • Controller (der jeweilige MVC-Controller zum Baum-Element, das durch eine Instanz von Document oder seiner Unterklassen repräsentiert werden)
      • Model (eine Model-Instanz; oft auch ein View-Model in Kombination mit einem Service zur Kapselung des Datenzugriff)
      • Templates (View-Komponente; nahezu gleich zu setzen mit dem aktuellen Baum-Knoten)

      Die Idee, über Controller eine Hierarchie und Abhängigkeit aufzubauen, wie du sie beschreibst, ist jedoch an der Flexibilität von HMVC ebenso vorbei. Hier gab es bereits einen Thread, der die Nachteile einer solchen Implementierung dargelegt hat. HMVC ermöglicht zwar, Ergebnisse von tieferen Strukturen in höheren Ebenen zu verwenden, dies sollte jedoch auf eine Art und Weise passieren, die keine expliziten Abhängigkeiten im Quellcode generiert (Stichwort: loose coupling).
      Viele Grüße,
      Dr.E.

      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      1. Think about software design [B]before[/B] you start to write code!
      2. Discuss and review it together with [B]experts[/B]!
      3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
      4. Write [I][B]clean and reusable[/B][/I] software only!
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      Kommentar


      • #4
        Was ist dann die korrekte Beschreibung von HMVC?
        Programming today is a race between developers striving to build better idiot-proof programs, and the universe trying to produce better idiots. So far, the universe is winning.

        Kommentar


        • #5
          Laut http://en.wikipedia.org/wiki/Present...action-control ein PAC Pattern mit loser Komponentenbindung.
          [COLOR="#F5F5FF"]--[/COLOR]
          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
          [COLOR="#F5F5FF"]
          --[/COLOR]

          Kommentar


          • #6
            Gut, genauso bzw. so ähnlich meinte ich das auch, diverse Texte die ich jetzt über HMVC gelesen habe bestätigen das auch. Jetzt hoffe ich nur noch dass er es nicht genau gleich meinte und ich es einfach falsch verstanden habe.

            Vielen Dank!
            Programming today is a race between developers striving to build better idiot-proof programs, and the universe trying to produce better idiots. So far, the universe is winning.

            Kommentar


            • #7
              Hier gab es bereits einen Thread, der die Nachteile einer solchen Implementierung dargelegt hat.
              ..., der leider nicht zu Ende diskutiert worden ist..

              Kommentar


              • #8
                Zitat von xm22 Beitrag anzeigen
                ..., der leider nicht zu Ende diskutiert worden ist..
                Aus meiner Sicht kann man nicht mehr Gründe zu diesem Thema darlegen. Insofern ist die Diskussion für mich beendet, da sie weiter zu führen weder fruchtbar noch sinnvoll ist.
                Viele Grüße,
                Dr.E.

                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                1. Think about software design [B]before[/B] you start to write code!
                2. Discuss and review it together with [B]experts[/B]!
                3. Choose [B]good[/B] tools (-> [URL="http://adventure-php-framework.org/Seite/088-Why-APF"]Adventure PHP Framework (APF)[/URL][URL="http://adventure-php-framework.org"][/URL])!
                4. Write [I][B]clean and reusable[/B][/I] software only!
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

                Kommentar

                Lädt...
                X