Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Model view controller 如何为不同的MVC级别建模_Model View Controller_Design Patterns_Software Design - Fatal编程技术网

Model view controller 如何为不同的MVC级别建模

Model view controller 如何为不同的MVC级别建模,model-view-controller,design-patterns,software-design,Model View Controller,Design Patterns,Software Design,我正在编写一个菜单,它可能看起来像这样: 我想用MVC模式来编写代码。因此,我开始为模型绘制UML类图,并得出以下结论: 但我不高兴。我无法为控制器提供一个良好的交互界面。然后我意识到,例如numbernumitem本身可以(应该)拆分为一个模型、一个视图和一个控制器。模型就是数字。控制器将是用于减少和增加数字的-和+。视图将是显示当前数值的标签。其他MenuItem子类也可以在MVC部件中拆分 所以现在的问题是: 既然CommandMenuItem、NumberMenuItem、Strin

我正在编写一个菜单,它可能看起来像这样:

我想用MVC模式来编写代码。因此,我开始为模型绘制UML类图,并得出以下结论:

但我不高兴。我无法为控制器提供一个良好的交互界面。然后我意识到,例如numbernumitem本身可以(应该)拆分为一个模型、一个视图和一个控制器。模型就是数字。控制器将是用于减少和增加数字的-和+。视图将是显示当前数值的标签。其他MenuItem子类也可以在MVC部件中拆分

所以现在的问题是:

既然CommandMenuItem、NumberMenuItem、StringMenuItem和SubMenuItem实际上都是MVC三元组,但级别较低,我该如何建模呢

附加说明

该实现将允许例如一个数字菜单项出现在菜单的中间(仅显示-+ +,即没有任何描述性文本),但是我的外部API将确保NoMultMeUnItitem和StrimMeNUTE始终是子菜单中的唯一项目,如我所发布的草图。但是可能会隐藏子菜单的标题栏。

我想我现在有了一些可以工作的东西。

我制作了低级MVC三元组,其中低级模型是大型模型的一部分。控制器和视图也是如此

我在网上唯一能找到的是: