logo

Java の MVC アーキテクチャ

Model-View-Controller (MVC) はよく知られている デザインパターン Web開発分野で。これはコードを整理する方法です。プログラムやアプリケーションがデータモデル、プレゼンテーション情報、制御情報から構成されることを規定しています。 MVC パターンでは、これらすべてのコンポーネントを異なるオブジェクトとして分離する必要があります。

このセクションでは、Java の MVC アーキテクチャ、その利点と欠点、および Java での MVC の実装を理解するための例について説明します。

Java の MVC アーキテクチャとは何ですか?

MVC アーキテクチャに基づくモデル設計は、MVC 設計パターンに従います。モデル設計を使用してソフトウェアを設計する際、アプリケーション ロジックはユーザー インターフェイスから分離されます。

MVC パターン アーキテクチャは 3 つの層で構成されます。

    モデル:これはアプリケーションのビジネス層を表します。これはデータを運ぶオブジェクトであり、データが変更された場合にコントローラーを更新するロジックも含めることができます。ビュー:アプリケーションのプレゼンテーション層を表します。モデルに含まれるデータを視覚化するために使用されます。コントローラ:モデルとビューの両方で機能します。これは、アプリケーションのフロー、つまりモデル オブジェクト内のデータ フローを管理し、データが変更されるたびにビューを更新するために使用されます。

Java プログラミングでは、モデルには単純なものが含まれます。 Javaクラス 、データを表示するために使用されるビュー、およびコントローラーには サーブレット 。この分離により、ユーザーのリクエストは次のように処理されます。

Java の MVC アーキテクチャ
  1. クライアント (ブラウザ) はサーバー側のコントローラーにページのリクエストを送信します。
  2. 次に、コントローラーはモデルを呼び出します。要求されたデータを収集します。
  3. 次に、コントローラーは取得したデータをビュー層に転送します。
  4. ここで、結果はビューによってブラウザ (クライアント) に送り返されます。

MVC アーキテクチャの利点

MVC アーキテクチャの利点は次のとおりです。

  • MVC にはスケーラビリティという機能があり、アプリケーションの成長を促進します。
  • コンポーネントは依存関係が少ないため、保守が容易です。
  • モデルは複数のビューで再利用できるため、コードの再利用が可能になります。
  • 開発者は 3 つのレイヤー (モデル、ビュー、コントローラー) を同時に操作できます。
  • MVC を使用すると、アプリケーションがより理解しやすくなります。
  • MVC を使用すると、各レイヤーが個別に維持されるため、大規模なコードを扱う必要がありません。
  • アプリケーションの拡張とテストが容易になります。

Javaを使用したMVCの実装

JavaでMVCパターンを実装するには、次の3つのクラスを作成する必要があります。

    従業員クラス、モデルレイヤーとして機能しますEmployeeView クラス、ビューレイヤーとして機能しますEmployeeController クラス、コントローラー層として機能します

MVC アーキテクチャ層

モデルレイヤー

MVC デザイン パターンのモデルは、アプリケーションのデータ層として機能します。これは、アプリケーションのビジネス ロジックとアプリケーションの状態を表します。モデル オブジェクトは、モデルの状態を取得してデータベースに保存します。モデル層を使用して、アプリケーションの概念を表すデータにルールが適用されます。

MVC パターンを実装する最初のステップでもある を作成する次のコード スニペットを考えてみましょう。

従業員.java

 // class that represents model public class Employee { // declaring the variables private String EmployeeName; private String EmployeeId; private String EmployeeDepartment; // defining getter and setter methods public String getId() { return EmployeeId; } public void setId(String id) { this.EmployeeId = id; } public String getName() { return EmployeeName; } public void setName(String name) { this.EmployeeName = name; } public String getDepartment() { return EmployeeDepartment; } public void setDepartment(String Department) { this.EmployeeDepartment = Department; } } 

上記のコードは、単に Employee クラスの getter メソッドと setter メソッドで構成されています。

レイヤーの表示

名前が示すように、ビューはモデルから受け取ったデータの視覚化を表します。ビュー層は、アプリケーションまたはユーザー インターフェイスの出力で構成されます。要求されたデータは、コントローラーによってモデル層からフェッチされ、クライアントに送信されます。

EmployeeView クラスを使用してビューを作成する例を見てみましょう。

従業員ビュー.java

 // class which represents the view public class EmployeeView { // method to display the Employee details public void printEmployeeDetails (String EmployeeName, String EmployeeId, String EmployeeDepartment){ System.out.println('Employee Details: '); System.out.println('Name: ' + EmployeeName); System.out.println('Employee ID: ' + EmployeeId); System.out.println('Employee Department: ' + EmployeeDepartment); } } 

コントローラ層

コントローラー層はビュー層からユーザーリクエストを取得し、必要な検証を行って処理します。これは、モデルとビューの間のインターフェイスとして機能します。その後、リクエストはデータ処理のためにモデルに送信されます。処理が完了すると、データはコントローラーに返送され、ビューに表示されます。

EmployeeController クラスを使用してコントローラーを作成する次のコード スニペットを考えてみましょう。

従業員コントローラー.java

 // class which represent the controller public class EmployeeController { // declaring the variables model and view private Employee model; private EmployeeView view; // constructor to initialize public EmployeeController(Employee model, EmployeeView view) { this.model = model; this.view = view; } // getter and setter methods public void setEmployeeName(String name){ model.setName(name); } public String getEmployeeName(){ return model.getName(); } public void setEmployeeId(String id){ model.setId(id); } public String getEmployeeId(){ return model.getId(); } public void setEmployeeDepartment(String Department){ model.setDepartment(Department); } public String getEmployeeDepartment(){ return model.getDepartment(); } // method to update view public void updateView() { view.printEmployeeDetails(model.getName(), model.getId(), model.getDepartment()); } } 

メインクラス Java ファイル

次の例は、MVC アーキテクチャを実装するためのメイン ファイルを表示します。ここでは、MVCMain クラスを使用しています。

MVCMain.java

 // main class public class MVCMain { public static void main(String[] args) { // fetching the employee record based on the employee_id from the database Employee model = retriveEmployeeFromDatabase(); // creating a view to write Employee details on console EmployeeView view = new EmployeeView(); EmployeeController controller = new EmployeeController(model, view); controller.updateView(); //updating the model data controller.setEmployeeName('Nirnay'); System.out.println('
 Employee Details after updating: '); controller.updateView(); } private static Employee retriveEmployeeFromDatabase(){ Employee Employee = new Employee(); Employee.setName('Anu'); Employee.setId('11'); Employee.setDepartment('Salesforce'); return Employee; } } 

MVCメイン クラスは、値を入力したメソッドから従業員データを取得します。次に、それらの値をモデルにプッシュします。その後、ビュー (EmployeeView.java) を初期化します。ビューが初期化されると、コントローラー (EmployeeController.java) が呼び出され、それを Employee クラスと EmployeeView クラスにバインドします。最後に、updateView() メソッド (コントローラーのメソッド) は、コンソールに出力される従業員の詳細を更新します。

出力:

 Employee Details: Name: Anu Employee ID: 11 Employee Department: Salesforce Employee Details after updating: Name: Nirnay Employee ID: 11 Employee Department: Salesforce 

このようにして、MVC アーキテクチャ、各層の重要性、および Java での実装について学びました。