【发布时间】:2014-08-03 07:03:11
【问题描述】:
有趣的问题:在电影院的 MVC Web 应用程序中,我有 Model 类,例如 Film 和 Showing。另外,我有像 FilmDAO 和 ShowingDAO 这样的 DAO 类来从数据库中检索数据...
我的问题是,我应该为不是真正的“实体”而只是页面元素创建类吗?我的意思是像 Carousel 或 Sidebar 这样的类,以及它们对应的 DAO。
我认为拥有SidebarDAO 真的很奇怪,但是从控制器中从数据库中检索到要显示在页面上的东西也是如此......
【问题讨论】:
-
请阅读c2.com/cgi/wiki?DomainObject 并停止将它们称为“模型”
-
@tereško,那么,在您看来,
Film和Sidebar都是我的应用程序的 域对象,因此,它们应该以相同的方式处理? -
实际上,
Sidebar将是一个presentation object 并被视图使用。此外,您可能会发现这很有用:stackoverflow.com/a/16596704/727208 -
谢谢@tereško。我一直在阅读您的一些有趣的答案...只有一个问题:您所谓的 Representation Objects 与 L-Three 提到的 ViewModel 类几乎相同在他下面的回答中,或者这里定义的那些,例如:fuelphp.com/docs/general/viewmodels.html,或者他们不是?
-
“ViewModel”实际上是替换 MVVM 中的“控制器”。当您无法控制模型的 API 或/和视图时(通常是您进行 3rd 方系统集成的情况),它是您使用的一种结构。 FuelPHP 的“视图模型”只是对simple php templates 的另一种歪曲……你真的不应该向 Fuel 学习应用程序架构。
标签: web-applications model-view-controller architecture dao