Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.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 在非基于web的应用程序中使用MVC_Model View Controller_Vlc - Fatal编程技术网

Model view controller 在非基于web的应用程序中使用MVC

Model view controller 在非基于web的应用程序中使用MVC,model-view-controller,vlc,Model View Controller,Vlc,我知道MVC设计模式很流行,主要是在基于web的应用程序中。我很想知道如何在桌面应用程序环境中使用MVC设计模式 更具体地说,让我们考虑一下VLC媒体播放器。VLC是否可以按照MVC模式编写?谁是M、V、C,谁是“调度员” 也许VLC不是一个完美的例子,但我认为它是一个流行的应用程序。VLC不仅仅是播放内置编解码器的视频,还有一些视频效果调整支持。我以前在非web应用程序中使用过MVC模式。它实际上是一种非常好的方法,可以实现一个应用程序的各种接口。以我的经验: 模型非常明显;它们不会改变。在V

我知道MVC设计模式很流行,主要是在基于web的应用程序中。我很想知道如何在桌面应用程序环境中使用MVC设计模式

更具体地说,让我们考虑一下VLC媒体播放器。VLC是否可以按照MVC模式编写?谁是M、V、C,谁是“调度员”


也许VLC不是一个完美的例子,但我认为它是一个流行的应用程序。VLC不仅仅是播放内置编解码器的视频,还有一些视频效果调整支持。

我以前在非web应用程序中使用过MVC模式。它实际上是一种非常好的方法,可以实现一个应用程序的各种接口。以我的经验:

模型非常明显;它们不会改变。在VLC示例中,它们可能是输入文件之类的东西

控制器实际上也不需要做太多更改(如果它们编写得很好的话)。控制器基本上应该与接口类型(web、cli等)无关。一个给定的控制器动作应该被认为是这样的:“这里是你处理数据的地方。”

视图是进行重大重构的地方。只需使用适合介质的输入/输出(例如,窗口指令,而不是HTML资源)重新创建视图即可

最后,本例中的“分派”将由应用程序可执行文件完成,该文件将有效地传递消息——将用户输入(和其他输入)转换为对控制器的调用(就像在web应用程序中一样)


查看更多信息。

我以前在非web应用程序中使用过MVC模式。它实际上是一种非常好的方法,可以实现一个应用程序的各种接口。以我的经验:

模型非常明显;它们不会改变。在VLC示例中,它们可能是输入文件之类的东西

控制器实际上也不需要做太多更改(如果它们编写得很好的话)。控制器基本上应该与接口类型(web、cli等)无关。一个给定的控制器动作应该被认为是这样的:“这里是你处理数据的地方。”

视图是进行重大重构的地方。只需使用适合介质的输入/输出(例如,窗口指令,而不是HTML资源)重新创建视图即可

最后,本例中的“分派”将由应用程序可执行文件完成,该文件将有效地传递消息——将用户输入(和其他输入)转换为对控制器的调用(就像在web应用程序中一样)


查看更多信息。

我认为桌面应用程序很少提到MVC,因为桌面应用程序已经采用了MVC方法。您有一个GUI(您的视图),它有一系列引起事件的交互点(调用控制器)

坚持使用更简单的应用程序:winamp

控制器启动点:

  • 菜单选项
  • 钮扣
观点:

  • 总图形用户界面
  • 轨道信息面板(艺术家/轨道等)
  • 可视化面板(图形均衡器)

您当然可以将MVC模式用于桌面应用程序,并将实现与web应用程序相同的好处。

我认为MVC在桌面应用程序中不会被提及太多,因为桌面应用程序已经采用了MVC方法。您有一个GUI(您的视图),它有一系列引起事件的交互点(调用控制器)

坚持使用更简单的应用程序:winamp

控制器启动点:

  • 菜单选项
  • 钮扣
观点:

  • 总图形用户界面
  • 轨道信息面板(艺术家/轨道等)
  • 可视化面板(图形均衡器)

您当然可以将MVC模式用于桌面应用程序,并将实现与web应用程序相同的好处。

ty谢谢您的反馈,但我想从开源项目中学习。如果该项目是计算机视觉或视频处理相关的更好。无论如何,我对winamp很熟悉,所以您的回答非常受欢迎,非常有用。对于您的反馈,我很乐意从开源项目中学习。如果该项目是计算机视觉或视频处理相关的更好。无论如何,我对winamp很熟悉,所以您的回答非常受欢迎和有用。