我正在用UML建模一个电影票系统。我需要使用MVC,所以我必须有一个模型;它控制数据库中的可用票,一个视图;它要求客户提供一些数据和一个控制器;它控制一切,是模型和视图之间的路径。问题是,我把这个系统建模成这样:

但是我的老师说我不能使用控制器和视图和模型之间的作文关系。但是我不明白为什么,因为如果我初始化了Controller内部的Model和View (这样它就可以控制一切),当Controller死亡时,(Model和View)就不再存在了。我的老师说我必须使用联想关系。你能告诉我什么是正确的关系吗?为什么?
发布于 2019-04-02 08:52:51
MVC模式中的Controller管理模型和视图之间的交互,它们都是可以在自己的上存在的独立事物,因此它引用它们(关联)--它们不是它们的复合部分(组合)。
我还要在您的UML类模型示例中注意到,术语Model、View和Contoller是设计模式中的解决方案结构,而不是您在设计或实现中必须具有的特定类型。您的场景中的“模型”实际上可能是票务实体,也可能是一堆其他实体。“视图”可能是"TicketDetailsView“或"ListTicketsView”,"Controller“可能是"TicketController”。在嵌入在SmallTalk中的原始MVC模式中,视图直接读取模型,而Controller对模型进行操作,而现在有许多不同的MVC模式,它们的关联并不完全相同(MVP、MVVM、MVPC、Page等等)。
作为参考,我强烈建议阅读Fowler (https://martinfowler.com/eaaDev/uiArchs.html)。
https://stackoverflow.com/questions/55427988
复制相似问题