Questions tagged «model-view-controller»

模型-视图-控制器(MVC)是软件工程中使用的体系结构模式。对于Microsoft ASP.NET MVC,请改用[asp.net-mvc]或[asp.net-core-mvc]标记。对于Spring MVC,请改用[spring-mvc]标签。

2
FLOW3动作参数和对象数组
FLOW3提供了一种方便的方法,可以通过URL中的ID传递实体,并在controller动作的参数中自动实例化它们: class PostController extends \TYPO3\FLOW3\MVC\Controller\ActionController { public function editAction(Post $post) { ... } } 但是,如果您有一个复选框,每个复选框代表一个特定的对象,该用例如何?也可以自动实例化它们: <input type="checkbox" name="tags[]" value="1" /> <input type="checkbox" name="tags[]" value="2" /> ... 有没有办法告诉FLOW3将实例自动实例$tags化为Tag对象数组?就像是: public function setTagsAction(Post $post, /** @var Model\Tag */ array $tags) { $post->setTags($tags); }

2
胖模型,瘦控制器和MVC设计模式
我刚刚读了一篇博客文章,用银行类比解释了MVC。我在使用MVC框架(CakePHP)进行Web应用程序开发方面有几个月的经验,因此我掌握了基础知识,但是我开始看到一个主题,使我认为我对方法的位置采用了错误的方法: 胖模型,瘦控制器 在模型中保留尽可能多的业务逻辑 在我的应用中,模型是厌食症,控制者肥胖。我在控制器中拥有所有业务逻辑,除了模型中的关联和验证规则之外,一无所有。 通过控制器的扫描,我现在可以确定模型中应该包含的许多逻辑: 该应用程序具有包含项目的列表,并且可以对项目进行排名。将列表排序的排序逻辑在控制器中。 同样,项目(项目模型)也具有图像(图像模型)。每个项目可能都有一个默认图像(在项目表中由image_id指定)。当显示带有图像的项目时,默认图像应首先出现。我有在控制器中执行此操作的逻辑。 显示列表时,相关列表将显示在边栏中。确定哪些列表相关的逻辑在控制器中。 现在我的问题是: 通过上面给出的示例,我是否在正确的道路上认为这些是当前属于模型的控制器中的逻辑实例? Web应用程序应将其他逻辑领域的哪些内容纳入模型中? 我敢肯定,确定这个问题并改变我的设计模式是成功的一半,但是即使我决定采用我在上面给出的那些例子,并尝试将逻辑转移到模型中,我也不知道从哪里开始。任何人都可以通过在此处发布一些代码或链接到一些好的学习资源来为我指明正确的方向吗?CakePHP特定的帮助将非常有用,但是我相信任何MVC都可以满足要求。

7
AngularJS客户端MVC模式?
到现在为止,我主要是利用Struts 2,Spring,JQuery用于构建Web应用程序技术堆栈。关键是,提到的堆栈使用服务器端MVC模式。Web浏览器的主要作用仅限于请求/响应周期(+客户端验证)。数据检索,业务逻辑,接线和验证是服务器端的主要职责。 我对AngularJS框架的疑问很少,这些疑问是由我读过的下列引言所启发的: 从AngularJS教程中: 对于Angular应用,我们鼓励使用模型-视图-控制器(MVC)设计模式来分离代码并分离关注点。 从Wikipedia模型-视图-控制器: 模型-视图-控制器(MVC)是一种体系结构,用于将信息的表示形式与用户与之的交互分开。该模型由应用程序数据和业务规则组成,控制器控制输入,将其转换为模型或视图的命令 AngularJS使用客户端MVC模式。因此,我想除了以某种方式在客户端也包括验证逻辑之外,没有别的选择了吗? 编写健壮的AngularJS应用程序的最佳方法是什么?客户端上的MVC和服务器端上的某种MC(模型,控制器)? 这是否意味着,MODEL和CONTROLLER以一种方式重复(客户端/服务器)? 我知道我的问题有些奇怪,但是我认为原因是我某种程度上习惯于传统的服务器端MVC模式。我确定有人已经完成了相同的过渡。

6
在Angular中,如何使用$ location.path重定向为$ http.post成功回调
我正在尝试通过将Post发送到php文件来提供简单的身份验证服务,ng-view当成功时,我需要它来加载主页的部分内容。 这是我尝试的: function loginCtrl($scope, $http, $location){ $http.post(url,data).success(function(data){ $location.path('/home'); }); } 结果我的网址发生了变化,但ng-view没有更新。当我手动刷新页面时,它会更新。 (路由已在处进行了正确配置$routeProvider,我已经测试了使用独立功能(而不是作为回调)将其重定向,并且可以正常工作) 我也尝试过定义$location.path('/home')为一个函数,然后在回调中调用它仍然不起作用。 我进行了一些研究,发现一些文章指出使用其他第三方插件时会发生这种情况,我仅加载angular.js 任何对某些学习材料的见解或指导都是很棒的

19
什么是好的轻量级Python MVC框架?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我知道那里有大量的Python框架。你们能指出我正确的方向吗?我主要关心的是简单性,我不需要很多多余的功能。这是我想要(或不想要)的其他几件事: 不在乎ORM,只希望它与MySQL一起使用 具有可配置的路线 支持布局

6
如何组织游戏代码以适合MVC模式?
我是大学一年级的学生,攻读计算机科学学位。最近几年,我编写了很多程序,但是最近,我对结构代码,设计模式,语言差异等方面的理论有了更多的了解。 我有一个Java类,所以我放弃了C ++的研究/开发,而转到了Java和JOGL(Java OpenGL)。太好了!但这不是重点。 我想制作一个小型的角色扮演游戏,但是这个问题确实适用于任何类型的游戏。您如何以结构化的方式组织游戏对象,例如Model-View-Controller模式?它看起来是一种了不起的模式,已经被广泛使用并且很有道理,但是我在弄清楚如何实现它方面遇到了麻烦。 例如,我需要跟踪GL对象以绘制到屏幕上。我必须具有实现MouseListener,MouseMotionListener,MouseWheelListener和KeyListener的类(或一个类,多合一输入管理器)。而且我必须将游戏数据放在所有这些不同类都可以访问和修改的地方。如果有人按下键盘上的按钮,则输入管理类需要以某种方式执行键所映射的操作;当需要绘制框架时,图形类需要找到一种方法来遍历所有不同的“事物”并全部绘制。 而我最大的问题是GUI;它在哪里联系在一起?这有点像输入,但不完全相同,它需要从实际的游戏模拟中设置和获取数据。而且,如果我决定尝试添加网络,则更加复杂的是(类似于GUI) )还需要访问大量数据以进行修改和读取... 哦,我都很困惑。我不知道如何将所有这些以面向对象的方式一起工作……编写清楚适合模式的东西很容易,但是当您发生大量事情时,所有事情都绑在一个游戏循环上,互相修改以及游戏数据等等,……我什至不知道。也许我只是在做比实际更大的交易。 其他人有这种感觉吗?请澄清一下我的处境,这样我就可以花更少的时间去担心和不知道从哪里开始! 编辑:找到了一个不错的图表,可能会帮助我解决所有问题...来源:(请注意,PS文件!)http://www.tucs.fi/publications/attachment.php?fname=TR553.ps.gz Edit2:我也喜欢这个人对他如何计划他的MVC游戏的解释:http : //interactivesection.wordpress.com/2007/11/19/dum-de-dum-drum-my-first-mvc-game-development/ Edit3:另一篇很棒的文章! http://dewitters.koonsolo.com/gamemvc.html

2
MVCS-模型视图控制器服务
我已经使用MVC很长时间了,并且听说过“服务”层(例如在Java Web项目中),并且我一直在想,如果我找不到很多有关MVC的信息,那这是否是真正的架构模式它。 MVCS的想法是在控制器和模型之间具有服务层,以封装控制器中可能存在的所有业务逻辑。这样,控制器就在那里转发和控制执行。您可以在许多控制器(例如,网站和Web服务)中调用服务,而无需重复代码。

6
角度设计模式:MVC,MVVM或MV *?
Angular 1.x(AngularJS)由于具有双向数据绑定功能,因此或多或少遵循MV *设计原理。 Angular2正在采用基于组件的UI,这是React开发人员可能熟悉的概念。从某种意义上说,Angular 1.x控制器和指令会模糊到新的Angular 2组件中。 这意味着在Angular 2中没有控制器,也没有指令。相反,组件具有一个与该组件将代表的html标签相对应的选择器,以及一个@View,用于指定要填充的HTML模板。 Angular2仍然实现双向数据绑定,但是不包含模型,例如,如果我有一个@Component显示文章列表和一个class定义文章对象的模型: class Article { title: string; link: string; votes: number; constructor(title: string, link: string, votes?: number){ this.title = title; this.link = link; this.votes = votes || 0; } 在MVC模式中,这将被视为模型。 因此,考虑到哪种设计模式Angular最接近?

7
最好在MVC中拥有大型控制器或多个控制器?
我们正在ASP.NET MVC中构建一个相当大的HR应用程序,到目前为止,我们的控制器变得越来越大。例如,我们有一个Employee控制器,并且包括了所有雇员视图(个人信息,雇员扣除额,家属等)。这些视图中的每一个都可能具有多个操作或子视图(例如CRUD)。每个动作都相对较小,但是控制器可能具有数十种功能。 是否有拆分控制器的最佳实践?与其让Employee控制器具有数十个视图,不如为每个子类型(即EmployeePersonalInfoController,EmployeeDeductionController,EmployeeDependentController)配备一个控制器会更好吗? 最后,这甚至有关系吗? 更新说明 我最初关心的是CRUD动作。例如,让我们考虑创建和删除... EmployeeController中的当前操作: CreateEmployee() DeleteEmployee() CreateEmployeeDeduction() DeleteEmployeeDeduction() CreateDependent() DeleteDependent() etc. 如果控制器拆分: EmployeeController Create() Delete() EmployeeDeductionController Create() Delete() EmployeeDependentController Create() Delete() EmployeeBenefitController Create() Delete() etc. 在第一种情况下,我们的约100个屏幕分为8-10个大型控制器。在第二个中,我可能会有约50个控制器。

8
MVC的替代品[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 改善这个问题 什么是模型视图控制器的替代“设计方法”?MVC似乎很流行(SO是用它构建的,我知道很多),但这是唯一使用的方法吗?

2
适用于高级PHP开发人员的MVC [关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 6年前关闭。 改善这个问题 我需要经验丰富的程序员的帮助。我想提高我的MVC技能。但是我在Google for MVC上找不到很好的教程。Google始终会为“初学者提供MVC”。 我了解MVC是什么,我可以做到,但是我没有足够的经验来做OOP实用的东西。 如果有人知道MVC的优秀面向对象教程,请引导我到正确的地方-我正在寻找好的链接,书籍等。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.