在大学期间,从开发SO开始,我就听说了很多关于Model-View-Controller的架构devise模式。 甚至在我知道它是什么之前,我无意中使用了MVC模式,并且仍然在我的日常工作中使用它。 从我所看到的,这可能是今天使用的最stream行的模式。 但是我还没有听说太多,可以使用替代模式来代替MVC。 有什么select,为什么你决定通过MVC使用它们? 我也很有兴趣知道他们所使用的典型系统的types。 最后,使用它们的优点和缺点是什么?
我将开始一个Java项目来开发一个桌面应用程序。 什么用作表示层模式(MVC,MVP,MVVM或….)? …如果可能的话,用一些小小的例子… 🙂
我试图写一个简单的RPG。 到目前为止,每次我尝试开始时,它立即变得混乱,我不知道如何组织任何东西。 所以我重新开始,试图创build一个基本上是MVC框架的新结构。 我的应用程序开始执行在控制器,它将创build视图和模型。 然后进入游戏循环,游戏循环的第一步是收集用户input。 用户input将被视图的一部分收集,因为它可能会有所不同(3D视图将直接轮询用户input,而远程视图可能通过telnet连接接收它,或者命令行视图将使用System.in )。 input将被转换成消息,并且每个消息将被给予控制器(通过方法调用),然后可以解释该消息以修改模型数据,或通过networking发送数据(因为我希望有一个networking选项) 。 这种消息处理技术也可以在networking游戏中用于处理networking消息。 我保持MVC的精神到目前为止? 无论如何,我的问题是,代表这些消息的最佳方式是什么? 这里是一个用例,每条信息用斜体表示:假设用户启动游戏并select字符2 。 然后用户移动到坐标(5,2) 。 然后他对公众聊天说:“嗨! 。 然后他select保存并退出 。 该视图应该如何将这些消息整理成控制器可以理解的东西? 或者你认为我应该有像chooseCharacter(),moveCharacterTo(),publicChat()? 当我转向networking游戏时,我不确定这样简单的实现是否可行。 但在极端的另一端,我不想只发送string到控制器。 这很困难,因为select字符操作需要一个整数,移动需要两个整数,聊天需要一个string(和一个范围(公共私人全局),在私人,目的地用户的情况下)。 没有真正的设置数据types。 任何一般的build议都非常受欢迎。 我在适当的时候担心这个吗? 我是否走上了一条精心布置的MVC应用程序的正确道路? 有什么我忘记了吗? 谢谢!
我刚开始看MVC结构,首先我看看backbone.js是如何工作的,现在我已经完成了Code School的僵尸轨道 。 我知道我没有深入研究过这个问题,但是我有一个问题要开始。 你可以一起使用这些库吗? 我已经学会了如何在两者中创buildmodels , views等,但是在创build真正的应用程序时,是否同时使用backbone和rails? 如果是这样… 什么时候使用backbone.js模型与rails模型? 也许我只是走在自己的前面,需要继续练习和做教程,但我似乎无法直接find任何东西。 谢谢!
我在看Ember.js并阅读文档,试图了解如何使用它。 我明白了(非常好),除了一件事。 以我在MVC模式中思考的方式,Model是应用程序中数据的存储库。 我可以看到Ember.js中的客户端数据是如何工作的。 我没有得到的是如何将数据绑定到服务器,以便在客户端更改数据时,更改将在服务器中更新。 反之亦然。 我一直在做我的Web应用程序进行Ajax / JSON调用来回服务器,我只是没有得到如何使用Ember.js。
我有一个名为ProjectsController的控制器。 它的动作,默认情况下,在app/views/projects寻找视图。 我想在控制器中更改所有方法( index , show , new , edit等)的path。 例如: class ProjectsController < ApplicationController #I'd like to be able to do something like this views_path 'views/mycustomfolder' def index #some code end def show #some code end def new #some code end def edit #some code end end 请注意我没有改变render每个方法,但定义了所有的默认path。 这可能吗? 如果是这样,怎么样? 谢谢!
我在理解MVC模式方面遇到了一些麻烦。 我明白我们正试图从业务逻辑中分离出GUI,尽pipe我在理解方面存在问题。 从我所了解的View来看,就是用户所看到的。 所以它通常是窗口/窗体。 Controller介于View和Model 。 控制器将使数据在两个方向上“stream动”。 它也将在需要的时候保持状态(如果我有一个5级的向导, Controller负责确保它们按照正确的顺序进行)。 该Model,是我的应用程序逻辑的核心所在。 这个观点是否正确? 为了把它变成更有意义的东西,我将尝试用WinForms(没有ASP.NET或者WPF,请示意)绘制一个简单的例子 – 对于java人群,从我所了解的Swing中以相似的方式工作到WinForms的方式!),看看我是否正确,我会提出我一直这样做的问题。 假设我有一个只包含一个类的模型(为了简单起见,我知道这会让这个例子看起来很笨,但是这样做更简单): class MyNumbers { private IList<int> listOfNumbers = new List<int> { 1, 3, 5, 7, 9 }; public IList<int> GetNumbers() { return new ReadOnlyCollection<int>(listOfNumbers); } } 现在是时候让我的Controller : class Controller { private MyNumbers myNumbers = new MyNumbers(); public IList<int> GetNumbers() { […]
我正在阅读JSF,我感到相当困惑,为什么JSF是一个MVC框架(或至less哪些部分属于哪个“字母”)。 我看了这个问题: JSF MVC框架中的MVC是什么组件? 我在那里阅读,如果你不看它在一个聚合的看法模型是你的实体,视图是你的XHTML代码和控制器是托pipe的bean。 嗯…好吧,但是这个视图往往不依赖于进一步的业务逻辑调用,例如返回一组实体,这个描述是否合适呢? 我读过的一本书描述为托pipebean是Faces Servlet(Controller)用来调用业务层(Model),然后XHTML代码是视图的某种“消息”使者。 有太多的解释和分歧,所以我不知道该怎么理解。
如何创build丰富的用户界面Windows应用程序,例如Photo Shop。 我正在寻找干净的MVC教程WinForms与C#的地方。 ( 不是 ASP.NET MVC。) 在Windows平台上是新的; 大多数MSDN和互联网教程基本上把所有东西都放到Form类中。 更多的默认事件是在表单内部处理的,而不是将事件发送到控制器/模型,这反过来又改变了视图的状态。 或者是Windows应用程序的首选方法?
我一直在学习Zend和我的新工作的MVC应用程序结构,并发现使用它只是困扰我的原因,我不能把我的手指。 然后,在我的学习过程中,我遇到了MVC:No Silver Bullet以及MVC和Web应用程序这个主题的播客 。 播客中的这个人对MVC作为一个Web应用程序架构提出了很好的build议,并且钉了很多让我头疼的东西。 然而,问题仍然存在,如果MVC不适合Web应用程序,那么是什么?