【发布时间】:2014-09-06 16:13:03
【问题描述】:
我正在构建一个应用程序,我想在其中使用一个简单的 mvc 模型
我有一个包控制器,里面有这样的控制器结构
type UserController struct {}
func (u *UserController) Index(res http.ResponseWriter, req http.Request) {
// some code in it
}
我想要实现的是我可以通过字符串来创建该控制器的实例
func NewAppController("user") { }
所以我可以通过路由请求动态创建控制器实例
我想到的另一种方法是像这样映射我的控制器
var controllerProvider = map[string]interface{} {
"user": &controllers.UserController{},
"warehouse": &controllers.WarehouseController{},
}
然后调用它
appController = mux.Vars(req)["controller"]
c := controllerProvider[appController]
但我宁愿使用第一种方法,知道如何处理这个问题吗?
【问题讨论】:
-
还可以查看gocraft/web,它简化了这种模式。
标签: go