Questions tagged «mvc»

MVC(模型-视图-控制器)是一种软件体系结构模式,可强制将关注点分离。

3
每个数据库表的模型?
我正在使用codeigniter,并且发现自己处于类似的情况,在其中我重复了Model方法。我正在为每个控制器创建一个模型。但是我会为每个数据库表创建一个模型是一种好习惯吗?这样,方法不会被编写两次。 而不是每个控制器的模型或共享的几个小模型。 例如,如果我有一个模型方法get_user($ user_id),我可以在users_models.php上写它。 我看到的缺点之一是,我可能不得不调用多个模型,而不仅仅是controllername_models.php。 加载可能无法使用控制器几种方法的多个模型会影响性能和速度吗?解决这个问题的最佳方法是什么? 注意:也有类似的问题,但是它们没有涵盖每个数据库表的Model基础。

5
视图是否应该执行验证?
我正在阅读“ 在MVC中模型应该处理验证吗? ”,因为我很好奇验证逻辑在MVC网站中的位置。最高答案中的一行如下:“控制器应处理验证,模型应处理验证”。 我很喜欢,但是让我感到奇怪的是,为什么由于以下几个原因我们不会在View中进行数据验证: 视图通常具有强大的验证支持(JS库,HTML5标签) 视图可以在本地验证,从而减少网络IO 用户界面已经考虑了数据类型(日期的日历,数字的微调框),使其距验证仅一步之遥 在多个地方进行验证与MVC隔离职责的概念背道而驰,因此“在两个地方都做”似乎不合适。仅在控制器中执行数据验证是真正的主导方法吗?
10 architecture  mvc 

6
如何确定应如何获得自己的控制器?
我在用PHP构建的Web应用程序中使用MVC模式。 我一直在努力确定是否需要一套新的专用控制器来执行一组操作,或者是否应该将它们放置在已经存在的控制器内。 创建控制器时,有什么好的经验法则可以遵循吗? 例如,我可以拥有: AuthenticationController 动作: index() 显示登录表单。 submit() 处理表单提交。 logout(),不言自明。 要么 LoginController 动作: index() 显示登录表单。 submit() 处理表单提交。 LogoutController 采取行动: index() 处理注销。 要么 AccountController 动作: loginGet() 显示登录表单。 loginPost() 处理登录表单提交。 logoutGet() 处理注销。 registerGet() 显示注册表。 registerPost() 处理表单提交。 以及帐户涉及的任何其他操作。
10 mvc 

5
在MVC中,是否可以/应该在View中完成从模型的基本数据检索?
考虑到“瘦控制器,胖模型”的概念以及视图在需要输出数据时视图可以直接调用模型的普遍接受性,是否应该考虑处理视图中请求的“获取和显示”部分而不是控制器?例如(试图使代码相当通用): 控制者 <?php class Invoice extends Base_Controller { /** * Get all the invoices for this month */ public function current_month() { // as there's no user input let's keep the controller very skinny, // DON'T get data from the Model here, just load the view $this->load->view('invoice/current_month'); } } 视图 …


3
在Java应用中使用MVC
我需要编写一个跨平台的GUI应用程序来处理(在多个线程中)并可视化大量数据。理想情况下,应用程序应该相对较快并且外观良好。 该应用程序的界面将包括一个表格小部件,一个树状小部件和一个自定义图形绘制小部件。用户将能够从这些小部件中的任何一个修改数据,并且更改应立即反映在其他小部件中。 自然,我计划使用MVC。但是,我通常使用C ++ / Qt进行所有GUI编程,并且接触Java的机会非常有限。因此,我非常感谢有关如何在Java中组织此类应用程序的任何建议。特别是我应该使用Swing还是JavaFX?您会为工作选择哪些小部件?您能推荐涵盖Java平台这些方面的任何书籍/在线教程吗? 我将不胜感激任何反馈。谢谢! (此问题最初发布在Stack Overflow上,但建议将该站点建议为一个更合适的位置)
10 java  mvc  swing  javafx 

3
ASP.NET WebForms应用程序的最佳体系结构
我已经为客户端编写了一个ASP.NET WebForms门户。该项目是经过改进的,而不是从一开始就进行了适当的计划和组织。因此,所有代码都在同一项目中混在一起,没有任何层次。客户端现在对功能很满意,因此我想重构代码,以便对发布项目充满信心。由于似乎有许多不同的方法来设计体系结构,所以我想对最好的方法提出一些意见。 功能性 门户允许管理员配置HTML模板。其他关联的“合作伙伴”将可以通过向其网站添加IFrame代码来显示这些模板。在这些模板中,客户可以注册和购买产品。已经使用WCF实现了API,该API允许外部公司也可以与系统连接。管理员部分允许管理员配置各种功能并查看每个合作伙伴的报告。系统将发票和电子邮件通知发送给客户。 当前架构 它当前正在使用EF4读取/写入数据库。EF对象直接在aspx文件中使用。在我编写站点时,这促进了快速开发,但是像这样将它与UI紧密耦合在一起可能使它保持不可接受。特定的业务逻辑已添加到EF对象的部分类中。 问题 重构的目标是使站点可扩展,易于维护和安全。 哪种架构最适合此?请说明每层中应该包含的内容,是否应使用DTO的/ POCO / Active Record模式等。 是否有一种健壮的方法来自动生成DTO / BO,以便尽管有额外的层,也可以轻松实现将来的任何增强功能? 将项目从WebForms转换为MVC是否有益?

2
node.js和c#的用例
我做了很多ASP.NET工作(C#,MVC),但其中大多数是典型的Web开发。我使用CRUD存储库进行Restful体系结构。我的大多数客户在他们的应用程序中没有很多高级要求。 我现在正在研究node.js及其对性能的影响(我沉迷于速度),但是我并没有那么深入地研究它。 我想知道 node.js可以现实地替换我在C#和ASP.NET MVC中的典型Web开发(不重写现有应用程序,而是在开发新应用程序时) 通过向现有体系结构添加一些异步优势,node.js可以补充ASP.NET MVC应用程序。 是否有针对C#和node.js的用例? 编辑 我喜欢ASP.NET MVC,并且对它的发展感到非常兴奋。只是想看看是否有特殊的用例会支持node.js

3
MVVM还是MVC?想要为WPF和ASP.NET使用相同的类集
就设计模式而言,我是新手。当我听到新的嗡嗡声MVVM时,我才开始学习MVC。 我想通过重新设计为客户开发的旧库存和开发票应用程序来学习这两者的见解。我想同时编写一个基于Windows的WPF应用程序和一个基于Web的版本。如果可能,我想使用相同的类集,如果没有,那么至少要稍加修改。 我读了几篇文章,但是我没有遵循那里讨论的.NET 3.5和4的体系结构和高级概念。我只想设计我实际项目中真正需要的东西,就一步一步地前进。 是否有关于MVVM的简单分步参考?MVVM是MVC的超集还是子集?对于我的应用程序的Windows和Web版本,哪种模式是现代的,应该选择哪种模式? 有些类几乎不需要与View连接。在那种情况下,以MVVM方式设计相同的类将被证明是一项额外的工作。
10 mvc  wpf  asp.net-mvc-3  mvvm 

2
如何在Java Swing中将模型与视图/控制器完全分离
是否有一组通用的设计指南,用于在Java Swing应用程序中将Model类与View / Controller类分开?我不太担心View / Controller对模型一无所知,反之亦然:我想将模型设计为对javax.swing中的任何东西都不了解。理想情况下,它应该具有一个简单的API,使其能够由诸如CLI的原始语言驱动。从广义上讲,它应该是一个“引擎”。 将GUI事件传递给模型并不难-动作执行者可以调用模型的API。但是,当模型进行自己的状态更改并需要反映回GUI时,该怎么办?这就是“听”的目的,但是即使“听”也不是完全消极的。它要求模型知道有关添加侦听器的信息。 让我思考的特定问题涉及文件队列。在GUI端DefaultListModel后面有一个JList,还有一些GUI东西可以从文件系统中选择文件并将它们添加到JList中。在模型方面,它希望将文件从此“队列”的底部拉出(导致它们从JList中消失)并以某种方式进行处理。实际上,已经编写了Model代码-当前它维护ArrayList<File>并公开一个公共add(File)方法。但是我对如何使我的模型与视图/控制器一起使用而不对模型进行一些特定于Swing的大量修改感到困惑。 我对Java和GUI编程都非常陌生,到目前为止一直都在进行“批处理”和“后端”编程-因此,我有兴趣在模型和UI之间保持严格的划分,如果可能的话被教学。
10 java  mvc  swing 

3
MVC:完全填充的模型还是部分填充的模型?
这个困扰了我好久了。在进行MVC编程时,您认为更好的编程实践是什么?一个人应该使用完全填充的模型还是部分填充的模型,特别是当我知道要完成此特定任务时,我将仅需要来自模型对象的2个字段,而其他5个字段呢? 有时,当您知道只需要几个模型对象时,就用数据库中的所有值填充20个模型对象的列表似乎是犯罪的。 当然,局部模型意味着除了获取所有内容的方法外,您还必须在DAO中编写另一种方法。哪个意味着要维护更多代码? 另一方面,从具有完全填充的模型的数据库中提取所有内容意味着一种方法可以解决所有问题,但这显然会给您带来一些性能开销。 我可以看到ORM(例如Hibernate或ActiveRecord of Rails)在MVC编程中倾向于趋势,而诸如Google的BigTable完整模型这样的数据库则被接受为趋势。但是,如果您仍在使用旧的JDBC,该怎么办? 硬件便宜,开发成​​本高。即使应用程序每小时需要扩展至数十万个请求,这真的是真的吗?
10 mvc 

1
在delphi Pascal中实现MVVM和MVC的最佳实践
我是一个Delphi Pascal程序员,我使用最新的Embarcadero delphi XE,并且想利用诸如模型视图控制器和模型视图视图模型之类的设计模式。 但是,关于在Pascal上执行此操作的最佳做​​法,在网络上似乎没有很多。我可以找到的大多数示例都在C#中,并且某些语言功能在pascal中不存在,这意味着我可能必须找到实现这些功能的方法。 我正在尝试从此处修改本文的代码 我将列出我面临的问题 可空类型 Pascal不像C#那样具有可为空的类型,因此我创建了自己的类型。 TNullable<T> = record strict private fHasValue : boolean; fValue : T; function GetValue:T; procedure SetValue(newValue : T); public property HasValue : boolean read fHasValue; property Value : T read GetValue write SetValue; procedure SetToNull; end; 在实施部分 function TNullable<T>.GetValue:T; begin if fHasValue …

4
在MVC中,在控制器类中具有私有的非动作功能是否被认为是一种好习惯?
有时,控制器类中的动作函数可能变得庞大而令人讨厌,使用许多行代码可以简单地控制从模型到视图的数据流。在某些时候,这些巨大的功能完全无法跟踪良好代码的基本原理,即仅做一件事,体积小,可读性强且易于管理等。 将这些巨大的动作函数分解为控制器类中较小的私有函数是否被视为一种好习惯,还是这种优化的需求意味着我们宁愿将它们添加到模型中? 我赞成在控制器中将较小的函数设为私有,以便它们与操作相关,但我听到有人争辩说,在模型变得庞大而笨拙时,控制器最好应该是简单的。只是想知道哪种方法是最可取的。
10 php  code-quality  mvc 


2
正确的设计可以避免使用dynamic_cast?
经过一些研究,我似乎找不到一个简单的例子来解决我经常遇到的问题。 假设我要创建一个小应用程序,可以在其中创建Squares,Circles和其他形状,将它们显示在屏幕上,在选择它们后修改其属性,然后计算其所有周长。 我会像这样做模型类: class AbstractShape { public : typedef enum{ SQUARE = 0, CIRCLE, } SHAPE_TYPE; AbstractShape(SHAPE_TYPE type):m_type(type){} virtual ~AbstractShape(); virtual float computePerimeter() const = 0; SHAPE_TYPE getType() const{return m_type;} protected : const SHAPE_TYPE m_type; }; class Square : public AbstractShape { public: Square():AbstractShape(SQUARE){} ~Square(); void setWidth(float w){m_width = w;} …

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.