设计模式学习笔记--前端控制器模式
2018-03-02 10:41
585 查看
三十、前端控制器模式
前端控制器模式(Front Controller Pattern),主要用于集中统一化对外的请求接口,便于更好的封装内部逻辑。实现
创建不同的View视图类HomeView,
StudnetView,模拟不同的请求反馈,创建一个前端控制器类,
FrontController,一个逻辑分发类
Dispatcher。
View视图类
HomeView.java
package patterns.front; /** * Created by lenovo on 2016/12/12 0012. * 创建视图类 */ public class HomeView { public void show(){ System.out.println("显示Home主页"); } }
1
2
3
4
5
6
7
8
9
10
11
StudentView.java
package patterns.front; /** * Created by lenovo on 2016/12/12 0012. * 创建视图类 */ public class StudentView { public void show(){ System.out.println("Student 页面"); } }
1
2
3
4
5
6
7
8
9
10
11
分发类
Dispatcher.java
package patterns.front; /** * Created by lenovo on 2016/12/12 0012. * 调度器,用于分配请求 */ public class Dispatcher { private HomeView homeView; private StudentView studentView; public Dispatcher() { studentView = new StudentView(); homeView = new HomeView(); } public void dispatch(String request){ if (request.equalsIgnoreCase("student")){ studentView.show(); }else { homeView.show(); } } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
前端控制器类
FrontController.java
package patterns.front; /** * Created by lenovo on 2016/12/12 0012. * 前端控制器,统一接收请求。 */ public class FrontController { private Dispatcher dispatcher; public FrontController() { dispatcher = new Dispatcher(); } private boolean isAuthenticUser(){ System.out.println("User is authenticated successfully ."); return true; } private void trackRequest(String request){ System.out.println("请求页面: "+request); } public void dispatchRequest(String request){ //记录请求 trackRequest(request); //校验用户 if (isAuthenticUser()){ dispatcher.dispatch(request); } } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
演示
FrontControllerPatternDemo.java
package patterns.front; /** * Created by lenovo on 2016/12/12 0012. * 演示 */ public class FrontControllerPatternDemo { public static void main(String[] args){ FrontController controller = new FrontController(); controller.dispatchRequest("HOME"); controller.dispatchRequest("student"); } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
输出
请求页面: HOME User is authenticated successfully . 显示Home主页 请求页面: student User is authenticated successfully . Student 页面
相关文章推荐
- 设计模式学习笔记--前端控制器模式
- OPENCV学习笔记3-2_用控制器设计模式实现功能模块间通信
- OpenCV学习笔记-用控制器设计模式实现功能模块间的通信
- 设计模式学习—前端控制器模式(Front Controller Design Pattern)
- java学习笔记-设计模式22(访问者模式)
- 设计模式学习笔记(13)——享元模式
- Javascript 设计模式学习笔记(1) - 封装
- 设计模式学习笔记 1.factory 模式
- 【学习笔记】设计模式-状态模式
- 步步为营 .NET 设计模式学习笔记 十二、Observer (观察者模式)
- Javascript 设计模式学习笔记(2) - 继承(Inheritance) (下)
- PetShop3.x学习笔记8-《PetShop 3.x的设计模式与体系结构》节选-数据库可移植性
- 设计模式学习笔记——命令模式
- 设计模式学习笔记03
- [知了堂学习笔记]设计模式之观察者模式
- 设计模式学习笔记十一:观察者模式
- Java-设计模式学习笔记-总结
- 设计模式学习笔记--State状态模式
- 设计模式学习笔记
- 【设计模式学习笔记二十】【行为模式】【观察者模式(Observer)】