Model hierarchiczny - widok - kontroler - Hierarchical model–view–controller

Struktura aplikacji z PAC .

Hierarchiczny model – widok – kontroler ( HMVC ) to programowy wzorzec architektoniczny , odmiana modelu – widok – kontroler (MVC) podobna do prezentacji – abstrakcji – sterowania (PAC), który został opublikowany w 2000 r. W artykule w JavaWorld Magazine, autorzy najwyraźniej nieświadomi PAC, który został opublikowany 13 lat wcześniej.

Kontroler ma pewien nadzór polegający na tym, że najpierw wybiera model, a następnie widok, realizując mechanizm akceptacji przez kontrolera. Model uniemożliwia widokowi bezpośredni dostęp do źródła danych.

Przykład

Największą praktyczną korzyścią wynikającą z używania architektury HMVC jest „widżetizacja” struktur treści. Przykładem mogą być komentarze, oceny, wyświetlanie kanałów RSS na Twitterze lub blogu lub wyświetlanie zawartości koszyka na zakupy w witrynie handlu elektronicznego. Zasadniczo jest to fragment treści, który musi być wyświetlany na wielu stronach, a być może nawet w różnych miejscach, w zależności od kontekstu głównego żądania HTTP.

Tradycyjne frameworki MVC na ogół nie zapewniają bezpośredniej odpowiedzi na tego typu struktury treści, więc programiści często powielają i przełączają układy, używając niestandardowych pomocników, tworząc własne struktury widżetów lub pliki bibliotek lub pobierając niepowiązane dane z głównego żądanego kontrolera aby przejść do widoku i wyrenderować w części. Wadą jest to, że odpowiedzialność za renderowanie określonego fragmentu treści lub ładowanie wymaganych danych wycieka do wielu obszarów i jest duplikowana w odpowiednich miejscach.

HMVC, a konkretnie możliwość wysyłania żądań podrzędnych do kontrolera w celu obsługi tych obowiązków, ma na celu rozwiązanie tego problemu. Struktura naśladuje tradycyjną MVC. Przykładowo, gdyby trzeba było załadować jakieś dane o komentarzach i wyświetlić je w formacie HTML, należałoby wysłać zapytanie do kontrolera komentarzy z pewnymi parametrami. Żądanie następnie współdziała z modelem, wybiera Widok, który wyświetla zawartość. Różnica w stosunku do tradycyjnego MVC polega na tym, że zamiast wyświetlać komentarze na całkowicie oddzielnej stronie, są one wyświetlane w wierszu pod przeglądanym przez użytkownika artykułem. W związku z tym HMVC dąży do zwiększenia modułowości kodu , ułatwienia ponownego wykorzystania i utrzymania lepszego rozdzielenia problemów.

Zobacz też

Bibliografia

  1. ^ Cai, Jason; Kapila, Ranjit; Pal, Gaurav (21 lipca 2000). „HMVC: warstwowy wzorzec do tworzenia silnych warstw klientów” . JavaWorld . Źródło 2020-07-18 . CS1 maint: zniechęcony parametr ( link )
  2. ^ "TP" (8 września 2000). „Czy HMVC PAC?” . Litery do edytora. JavaWorld . Zarchiwizowane od oryginału w dniu 2006-03-19. CS1 maint: zniechęcony parametr ( link )
  3. ^ Vance Lucas (kwiecień 2011). "Dlaczego wzorzec HMVC?" . StackOverflow . Źródło 2013-10-15 . CS1 maint: zniechęcony parametr ( link )