フロントコントローラパターン
フロントコントローラパターン(フロントコントローラパターン)が要求を処理するための集中のメカニズムを提供するために使用され、すべての要求を単一のハンドラによって処理されます。 ハンドラは、適切なハンドラにその要求を認証/許可/ロギングやトラッキングの要求を行うことができます。 以下は、このデザインパターンの実体です。
- フロントコントローラ(フロントコントローラ) -要求アプリケーションのすべてのタイプを処理するために単一のハンドラは、アプリケーションは、デスクトップベースのアプリケーションであることができるWebベースのアプリケーションであってもよいです。
- スケジューラ(ディスパッチャ) -フロントエンドコントローラは、適切な特定のハンドラに要求をディスパッチするディスパッチャ・オブジェクトを使用してもよいです。
- ビュー(ビュー) -ビューは、要求の対象であると作成しました。
実現
我々は、フロントエンドコントローラとスケジューラとして、それぞれ、FrontController、ディスパッチャを作成します。 フロントエンドコントローラのさまざまなを示すHomeViewとStudentViewビューが作成するための要求を受信します。
使用FrontControllerフロントコントローラデザインパターンを実証するFrontControllerPatternDemo、私たちのデモクラス。
ステップ1
ビューを作成します。
HomeView.java
パブリッククラスHomeView { 公共ボイドショー(){ System.out.println( "ホームページを表示します"); } }
StudentView.java
パブリッククラスStudentView { 公共ボイドショー(){ System.out.println( "学生のページを表示します"); } }
ステップ2
ディスパッチャディスパッチャを作成します。
Dispatcher.java
パブリッククラスディスパッチャ{ プライベートStudentView studentView。 プライベートHomeView homeView。 公共ディスパッチャ(){ studentView =新しいStudentView(); homeView =新しいHomeView(); } 公共ボイドディスパッチ(文字列要求){ (request.equalsIgnoreCase(「STUDENT」)){場合 studentView.show()。 }エルス{ homeView.show()。 } } }
ステップ3
フロントコントローラFrontControllerを作成します。
Context.java
パブリッククラスFrontController { プライベートディスパッチャディスパッチャ。 公共FrontController(){ ディスパッチャ=新しいディスパッチャ(); } プライベートブールisAuthenticUser(){ System.out.println( "ユーザが正常に認証されます。"); trueを返します。 } プライベートボイドtrackRequest(文字列要求){ System.out.println( "ページが要求された:" +リクエスト)。 } 公共ボイドdispatchRequest(文字列要求){ //レコードのすべての要求trackRequest(リクエスト)。 //場合(isAuthenticUser()){ユーザーを認証するために、 dispatcher.dispatch(リクエスト)。 } } }
ステップ4
フロントコントローラデザインパターンの使用を実証するFrontController。
FrontControllerPatternDemo.java
パブリッククラスFrontControllerPatternDemo { 公共の静的な無効メイン(文字列[] args){ FrontController frontController =新しいFrontController(); frontController.dispatchRequest( "HOME")。 frontController.dispatchRequest( "STUDENT"); } }
ステップ5
出力を確認します。
ページ要請:HOME ユーザーが正常に認証されています。 ホームページを表示します ページ要請:STUDENT ユーザーが正常に認証されています。 学生のページを表示します