内容简介:前端控制器模式(Front Controller Pattern)是用来提供一个集中的请求处理机制,所有的请求都将由一个单一的处理程序处理。该处理程序可以做认证/授权/记录日志,或者跟踪请求,然后把请求传给相应的处理程序。以下是这种设计模式的实体。
前端控制器模式(Front Controller Pattern)是用来提供一个集中的请求处理机制,所有的请求都将由一个单一的处理程序处理。该处理程序可以做认证/授权/记录日志,或者跟踪请求,然后把请求传给相应的处理程序。以下是这种 设计模式 的实体。
- 前端控制器(Front Controller) - 处理应用程序所有类型请求的单个处理程序,应用程序可以是基于 web 的应用程序,也可以是基于桌面的应用程序。
- 调度器(Dispatcher) - 前端控制器可能使用一个调度器对象来调度请求到相应的具体处理程序。
- 视图(View) - 视图是为请求而创建的对象。
package main
import "fmt"
type HomeView struct{}
func (h *HomeView) Show() {
fmt.Println("displaying home page")
}
type StudentView struct{}
func (s *StudentView) Show() {
fmt.Println("displaying student page")
}
type Dispatcher struct {
HomeView *HomeView
StudentView *StudentView
}
func NewDispatcher() *Dispatcher {
return &Dispatcher{
HomeView: &HomeView{},
StudentView: &StudentView{},
}
}
func (d *Dispatcher) Dispatch(request string) {
if request == "student" {
d.StudentView.Show()
} else {
d.HomeView.Show()
}
}
type FrontController struct {
Dispatcher *Dispatcher
}
func NewFrontController() *FrontController {
return &FrontController{
Dispatcher: NewDispatcher(),
}
}
func (f *FrontController) isAuthenticUser() bool {
fmt.Println("user is authenticated successfully")
return true
}
func (f *FrontController) trackRequest(request string) {
fmt.Println("Page requested: ", request)
}
func (f *FrontController) DispatherRequest(request string) {
f.trackRequest(request)
if f.isAuthenticUser() {
f.Dispatcher.Dispatch(request)
}
}
func main() {
controller := NewFrontController()
controller.DispatherRequest("home")
controller.DispatherRequest("student")
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- SpringMVC: 前端控制器
- iOS之导航返回上上个控制器或指定返回某个控制器
- iOS小技巧·把子视图控制器的视图添加到父视图控制器
- javascript – AngularJS控制器错误 – :$http.get不是控制器部分的函数
- AC敏捷控制器及准入控制技术对比
- angularjs – 使用ui-router时,控制器是否可以从父控制器继承范围
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Four
Scott Galloway / Portfolio / 2017-10-3 / USD 28.00
NEW YORK TIMES BESTSELLER USA TODAY BESTSELLER Amazon, Apple, Facebook, and Google are the four most influential companies on the planet. Just about everyone thinks they know how they got there.......一起来看看 《The Four》 这本书的介绍吧!