我正在构建我的第一个backbone.marionette应用程序,有些事情让我感到困惑。
在backbone.marionette版本的TodoMVC中,似乎有两个不同的模块执行应用程序的工作:
首先是TodoMVC,它是Backbone.Marionette.Application的一个实例,然后是TodoMVC.TodoList,它似乎只是一个容纳控制器和路由器的容器。
为什么没有简单地将控制器对象添加到App对象中?
另一件让我感到困惑的事情是:在我在堆栈溢出(如这一个 )上讨论过的其他木偶应用程序中,addInitializer()在应用程序对象上被调用,而在TodoMVC应用程序中,addInitializer()在todolist对象上被调用。
这是特定于希望有控制器对象的应用程序吗?
我也觉得命名相当混乱,因为TodoMVC (app)和Todolist (控制器容器?)持有暗示它们是基本应用程序的名称。Todolist模块是否可以在语义上更多地称为TodoController?
发布于 2012-11-13 07:57:04
为什么没有简单地将控制器对象添加到App对象中?
这是一个与单一责任原则相关的模块化设计选择。TodoMVC是顶级应用程序,TodoList是我们应用程序中的一个模块(或子应用程序),它们都倾向于自己的花园。这使得我们可以在不增加顶级应用程序代码的情况下制造任意数量的模块。
在其他木偶应用中..。在应用程序对象上调用addInitializer(),但在TodoMVC应用程序中,addInitializer()是在todolist对象上调用的
我认为这只是Application.Modules的惯例问题。TodoMVC应用程序不需要任何init代码,所以我们不添加init函数。
https://stackoverflow.com/questions/13342522
复制相似问题