Jak implementovat architekturu MVC v Javě?



Tento článek o architektuře MVC v Javě vám pomůže pochopit, co přesně je návrhový vzor MVC a jak usnadňuje navrhování webových aplikací.

V poli Vývoj webu Model-View-Controllerje jedním z nejdiskutovanějších v dnešním světě webového programování. MVC Architecture byla původně zahrnuta do dvou hlavních rámců pro vývoj webových aplikací - Struts a Ruby on Rails . V tomto článku se pojďme trochu seznámit s architekturou MVC .

V tomto článku se budeme zabývat následujícími tématy:





Než jsme vlastně get do technických prvků MVC Architecture, existují určité koncepty, které potřebujete znát.

  • Návrhový vzor , v softwarovém inženýrství, je technika k řešení běžně se vyskytujícího problému při navrhování softwaru.
  • Navrhování modelu, určuje, jaký typ architektury použijete k vyřešení problému nebo návrhu modelu.
  • Existují dva typy designových modelů : Architektura modelu 1 , Architektura modelu 2 (MVC).

Co je architektura MVC v Javě?

Modelové návrhy založené na architektuře MVC se řídí MVC a při navrhování softwaru oddělují aplikační logiku od uživatelského rozhraní. Jak název napovídá, vzor MVC má tři vrstvy, které jsou:



  • Modelka - Představuje obchodní vrstvu aplikace
  • Pohled - Definuje prezentaci aplikace
  • Ovladač - Spravuje tok aplikace

MVC - MVC Architecture in Java - Edureka

V kontextu programování v Javěmodel se skládá z jednoduchých Třídy Java , Zobrazení zobrazí data a ovladač se skládá z . Toto oddělení má za následek zpracování požadavků uživatelů následujícím způsobem:



  1. Prohlížeč v klientovi odešle požadavek na stránku řadiči přítomnému na serveru
  2. Řadič provádí akci vyvolání modelu, čímž načte data, která potřebuje, v reakci na požadavek
  3. Řadič poté poskytne načtená data pohledu
  4. Pohled se vykreslí a odešle zpět klientovi pro zobrazení prohlížeče

Oddělení softwarové aplikace dotyto tři odlišné komponenty je dobrý nápad z mnoha důvodů. Pojďme se podívat, co to je.

Výhody architektury MVC v Javě

Architektura MVC nabízí programátorovi při vývoji aplikací mnoho výhod, mezi něž patří:

  • Více vývojářů může pracovat se třemi vrstvami (Model, View a Controller) současně
  • Nabídky vylepšeny škálovatelnost , který doplňuje schopnost aplikace růst
  • Jelikož komponenty mají na sobě nízkou závislost, lze je snadno udržovat
  • Model může být znovu použit více pohledy, což poskytuje opětovné použití kódu
  • Díky přijetí MVC je aplikace expresivnější a srozumitelnější
  • Rozšíření a testování aplikace se stává snadným

Nyní víte, proč je MVC nejoblíbenější ve světě webového programování. Pokud se však stále snažíte obejít koncept MVC, nebojte se. Prohloubíme se do každé z těchto vrstev a naučíme se jejich účel pomocí .

Implementace MVC pomocí Javy

K implementaci webové aplikace založené na návrhovém vzoru MVC vytvoříme

  • Kurz kurzu , který funguje jako modelová vrstva
  • CourseView Class , která definuje prezentační vrstvu ( zobrazit vrstvu )
  • CourseContoller Class , který funguje jako ovladač

Pojďme si tyto vrstvy prozkoumat jednu po druhé.

Vrstva modelu

V návrhovém vzoru MVC Modelka je datová vrstva, která definuje obchodní logiku systému a také představuje stav aplikace.Model předměty načíst a uložit stav modelu do databáze. Prostřednictvím této vrstvy aplikujeme pravidla na data, která nakonec představují koncepty, které naše aplikace spravuje. Nyní vytvořme model pomocí Kurz kurzu.

balíček MyPackage veřejná třída Course {private String CourseName private String CourseId private String CourseCategory public String getId () {return CourseId} public void setId (String id) {this.CourseId = id} public String getName () {return CourseName} public void setName (Název řetězce) {this.CourseName = name} public String getCategory () {return CourseCategory} public void setCategory (String category) {this.CourseCategory = category}}

Tento kód je snadno srozumitelný a je samozřejmý. Skládá se z funkcí pro získání / nastavení podrobností kurzu.

Pohledová vrstva

Tato vrstva návrhového vzoru MVC představuje výstup aplikace nebo uživatelského rozhraní. Zobrazuje data načtená z modelové vrstvy řadičem a poskytuje data uživateli, kdykoli je o to požádána. Jáneobdrží všechny informace, které potřebuje, od správce a nemusí přímo komunikovat s obchodní vrstvou.Pojďme si vytvořit pohled pomocí CourseView Class.

balíček MyPackage veřejná třída CourseView {public void printCourseDetails (String CourseName, String CourseId, String CourseCategory) {System.out.println ('Podrobnosti kurzu:') System.out.println ('Název:' + CourseName) System.out.println ('ID kurzu:' + CourseId) System.out.println ('Kategorie kurzu:' + CourseCategory)}}

Tento kód jejednoduše vytisknout hodnoty do konzoly. Dále máme ovladač webové aplikace.

nainstalovat php na Windows 8

Vrstva řadiče

Ovladač je jako rozhraní mezi modelem a zobrazením. Přijímá požadavky uživatelů z vrstvy zobrazení a zpracovává je, včetně nezbytných ověření. Požadavky se poté odešlou do modelu pro zpracování dat. Jakmile jsou zpracovány, data se znovu odešlou zpět do řídicí jednotky a poté se zobrazí v zobrazení.Pojďme vytvořit CourseContoller Class který funguje jako správce.

balíček MyPackage veřejná třída CourseController {soukromý model kurzu soukromý CourseView pohled veřejný CourseController (model kurzu, pohled CourseView) {this.model = model this.view = view} public void setCourseName (název řetězce) {model.setName (název)} veřejný řetězec getCourseName () {return model.getName ()} public void setCourseId (String id) {model.setId (id)} public String getCourseId () {return model.getId ()} public void setCourseCategory (String category) {model.setCategory (category)} public String getCourseCategory () {return model.getCategory ()} public void updateView () {view.printCourseDetails (model.getName (), model.getId (), model.getCategory ())}}

Zběžný pohled na kód nám řekne, že tato třída řadiče je právě zodpovědná za volání modelu, aby získal / nastavil data a na základě toho aktualizoval zobrazení. Nynípodívejte se, jak jsou všechny tyto prvky spojeny dohromady.

Hlavní třída Java

Pojďme tuto třídu nazvat „MVCPatternDemo.java“. Podívejte se na níže uvedený kód.

balíček MyPackage veřejná třída MVCPatternDemo {public static void main (String [] args) {// načíst záznam studenta na základě jeho role ne z databáze Course model = retriveCourseFromDatabase () // Vytvořit zobrazení: k napsání podrobností kurzu na konzole Zobrazení CourseView = new CourseView () CourseController controller = new CourseController (model, view) controller.updateView () // update model data controller.setCourseName ('Python') System.out.println ('nPo aktualizaci jsou podrobnosti kurzu následující') controller.updateView ()} soukromý statický kurz retriveCourseFromDatabase () {Course course = new Course () course.setName ('Java') course.setId ('01 ') course.setCategory (' Programming ') return course}}

Výše uvedená třídanačte data kurzu z pomocí kterého uživatel zadá sadu hodnot. Poté tyto hodnoty posune do modelu kurzu. Potom inicializuje pohled, který jsme vytvořili dříve v článku.Dále také vyvolává CourseController třídy a váže ji na Kurs třída a CourseView třída. The updateView () metoda, která je součástí kontroleru, poté aktualizuje podrobnosti kurzu na konzole. Podívejte se na výstup níže.

Výstup

Podrobnosti o kurzu: Název: ID kurzu Java: 01 Kategorie kurzu: Programování Po aktualizaci jsou podrobnosti o kurzu následující Podrobnosti o kurzu: Název: ID kurzu v Pythonu: 01 Kategorie kurzu: Programování

Architektura MVCposkytuje vašemu kódu zcela novou úroveň modularity, díky čemuž je mnohem čitelnější a udržovatelnější. Tím se dostáváme na konec tohoto článku.Doufám, že máte jasno ve všem, co bylo s vámi sdíleno.

Ujistěte se, že cvičíte co nejvíce a vraťte své zkušenosti.

Podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě. Jsme tu, abychom vám pomohli s každým krokem na vaší cestě, vytvoříme učební plán určený pro studenty a profesionály, kteří chtějí být vývojářem Java.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů této „MVC Architecture in Java“ článku a my se vám ozveme co nejdříve.