我对MVC的实现有缺点。
我见过的所有例子都很简单:模型的一个类和视图和控制器的相同。
如何在真实的应用程序中完成?
为了进一步澄清我的问题,假设我想创建一个涉及将棋子放在网格中的游戏。
对于我创建的网格:
可用的作品
PieceModel
类)PieceView
class)PieceController
类)在网格的一部分,我需要知道可用部分中的选定部分。
我的快速解决方案是将引用从PieceModel
传递到GridView
。
问题:
我是否必须继续进行此分解,还是必须使用单个MVC(考虑将来添加功能)?
如果我需要保持这种分解,有没有办法确保不同的MVC之间以正确的方式进行通信?
答案 0 :(得分:0)
基于许多关于MVC的stackoverflow问题/答案,该模型是定义应用程序业务逻辑的类组,而不是像例子和教程中所做的那样简单而独特的类。
我已将结构模式更改为修改后的MVC,其中视图和模型彼此之间不知道任何事情。
双方之间的所有通信都由控制器处理,因此每个控制器都需要了解相关视图所需的Model类。
在我的例子中:GridController现在有两个类的引用(GridModel和PieceModel)。
将来,当Model的类引用数量增长但可以通过某些Factory模式或依赖注入服务轻松解决时,这可能会产生问题。