Java设计模式(3):前端控制器模式

前端控制器模式(Front Controller Pattern)提供一种可以集中管理请求的控制器,即所谓的前端控制器,该前端控制器用于响应客户请求,为每个请求寻找匹配的处理器。在这种模式中,控制器提供一个处理不同请求的控制点,这些控制点包括日志记录,安全事务,错误处理和响应内容的生成(如视图),通过将这些工作集中在一点进行处理,大大地减低了Java代码量,同时这种机制也可以减少视图模块的程序逻辑,保证了在不同请求之间可以重用大量的逻辑代码。

前端控制器模式主要有三类组件构成:

前端控制器(Front Controller)

处理应用程序所有类型请求的单个处理程序,应用程序可以是基于web 的应用程序,也可以是基于桌面的应用程序。

处理器(Handler)

前端控制器可能使用一个处理器对象来处理请求到相应的具体处理程序。

视图(View)

视图是为请求而创建的对象。

下面的示例我们将创建FrontController,Handler 分别当作前端控制器和处理器。HomeView 和 LoginView 表示各种为前端控制器接收到的请求而创建的视图。FrontControllerPatternDemo是演示类使用 FrontController 来演示前端控制器设计模式。

示例:

public abstract class View {

public abstract void show();

}

public class HomeView extends View {

@Override

public void show() {

System.out.println("显示主页视图");

}

}

public class LogInView extends View {

@Override

public void show() {

System.out.println("显示登陆视图");

}

}

public class Dispatcher {

private HomeView homeView;

private LogInView logInView;

public Dispatcher(){

homeView=new HomeView();

logInView=new LogInView();

}

public void doDispacher(String request) {

if("HOME".equals(request)){

homeView.show();

}else{

logInView.show();

}

}

}

public class FrontController {

private Dispatcher dispatcher;

public FrontController(){

dispatcher=new Dispatcher();

}

public boolean authenticate() {

System.out.println("通过认证");

return true;

}

public void dispatcher(String request){

if( authenticate()){

dispatcher.doDispacher(request);

}

}

}

public class FrontControllerPatternDemo {

public static void main(String[] args) {

FrontController controller=new FrontController();

controller.dispatcher("HOME");

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,853评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,930评论 25 708
  • “臻臻细语”写简信给我,要我为“北漂”的农民工兄弟姐妹们写首诗。我说我没有这样的经历,恐怕写不出来。但我实在不愿有...
    曹焕甫阅读 185评论 2 1
  • 流星划过一刹那的故事 在那一刻虔诚的许下我的世界 从心里面留下未来的愿景 烟火灿烂一时的美好 在那一刻匆忙的身影驻...
    划一座城池阅读 140评论 0 2