标签: model-view-controller

理解MVC模式

我在理解MVC模式时遇到了一些麻烦.我确实理解我们正试图将GUI与业务逻辑分离,尽管我在理解方面遇到了问题.

根据我的理解,这View是用户看到的.所以它通常是窗口/窗体.的Controller是其间的ViewModel.控制器将使数据在两个方向上"流动".它还会在需要时保持状态(如果我有一个包含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);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在是时候让我Controller:

class Controller
{
    private MyNumbers myNumbers = new MyNumbers();

    public IList<int> GetNumbers() {
        return myNumbers.GetNumbers();
    }
}
Run Code Online (Sandbox Code Playgroud)

View应只是有一个ListBox有作为的项目中检索到的所有数字MyNumbers.

现在,第一个问题出现了:

应该Controller负责创建MyNumbers吗?在这个简单的例子中,我认为它是可以接受的(无论如何MyNumbers都会完全相同,并且没有相关的状态).但是我们假设我想要用于所有不同的控制器,我的应用程序具有相同的实例MyNumbers …

.net c# java model-view-controller winforms

43
推荐指数
1
解决办法
8139
查看次数

ember.js和服务器

我正在看Ember.js,并一直在阅读文档,试图了解如何使用它.我得到它(相当不错),除了一件事.根据我在MVC模式中的思考方式,Model是应用程序中数据的存储库.我可以看到它对Ember.js中的客户端数据有何用处.我没有得到的是如何将数据绑定回服务器,以便在客户端数据发生变化时,更改将在服务器中更新.反之亦然.我一直在我的Web应用程序中执行此操作,使Ajax/JSON调用来回到服务器,我只是没有得到如何使用Ember.js.

javascript ajax model-view-controller jquery ember.js

42
推荐指数
3
解决办法
2万
查看次数

MVC/MVP/MVVM到底是什么?

我最近在一个.Net WPF项目上建立了一个零售销售点系统,我第一次使用了MVP模式.我花了一点时间围绕着改变方法,但是一旦我这样做,我就认为这个概念震撼了!

我的问题是:MVC,MVP和MVVM之间有什么区别?如果有明确的区别,是否有关于何时应该使用一种模式而不是另一种模式的准则?

如果有人可以就此提供指导,或者指出解释差异的文章,我将非常感激.

wpf model-view-controller mvp design-patterns mvvm

41
推荐指数
1
解决办法
2万
查看次数

MVC(模型 - 视图 - 控制器) - 可以用简单的术语解释吗?

我需要向非技术经理解释MVC(模型 - 视图 - 控制器)概念并遇到麻烦.问题是解释需要在"你的奶奶会得到它"的水平上 - 例如,即使在MVC Wiki页面上提供的相当直接的解释也不起作用,至少在我的评论中.

有没有人用简单的术语来提及一个好的MVC解释?

理想情况下,非技术隐喻的例子(例如类似于"装饰模式就像眼镜")也是如此 - 我失败的一个原因是我能想到的所有MVC例子都与开发相关.

我曾经看过一个模式解释列表但是我记忆中的MVC并没有.

谢谢!

model-view-controller design-patterns

41
推荐指数
3
解决办法
2万
查看次数

3层架构和mvc有什么区别?

3层架构和mvc有什么区别?

它们一样吗?

两者都有3层,即模型,视图和控制器

architecture model-view-controller three-tier

40
推荐指数
4
解决办法
7万
查看次数

如果.html.erb中的else语句在视图中

在rails中,我经常会遇到这样的情况:在视图中我会做类似的事情

<% if @some_condition_previusly_established_in_a_controller %>
 <div class="one">123</div>
<% else %>
 <div class="two">something else</div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

它看起来有点乱.这是否是一种可接受的观看方式?

ruby model-view-controller ruby-on-rails

40
推荐指数
4
解决办法
8万
查看次数

MVC控制器的一个示例

我一直在阅读很多关于如何以及为什么在应用程序中使用MVC方法的内容.我已经看到并理解了一个模型的例子,我已经看到并理解了View的例子....但我仍然在控制器上有点模糊.我真的很想看到一个完整的控制器示例.(如果可能,使用PHP,但任何语言都会有帮助)

谢谢.

PS:如果我能看到一个index.php页面的例子,它会决定使用哪个控制器以及如何使用它.

编辑:我知道控制器的工作是什么,我只是不知道如何在OOP中实现这一点.

php model-view-controller

39
推荐指数
1
解决办法
7万
查看次数

选择ColdFusion MVC框架

我正在接管很多ColdFusion的东西,这些东西在我们的商店里挥之不去,他们坚持要留在ColdFusion上,并且这个领域的新项目必须在CF中完成 - 基本上这部分是不可协商的.我在CF方面不是很有经验(自2003年以来没有触及它)因此我的大部分开发工作都是在过去的4到5年中使用.Net,MVC,C#,Linq-to-SQL.

我正在寻找一个MVC框架,我可以将我的Asp.Net MVC体验与希望集成的ORM相关联(我至少暂时使用CF 8).我发现了一些像模型和胶水,Mach II和Coldbox等但我真的不知道从哪里开始,并希望从使用者那里得到一些关于它们的优点,缺点等的意见他们.

我知道我需要对CFML进行大量的刷新(几乎是重新学习),所以我不需要被告知 - 我在这里展望未来.

您能否分享一下您在CF MVC框架上的任何信息,以帮助我选择哪一个最适合我?谢谢.

model-view-controller coldfusion frameworks coldfusion-8 cfml

39
推荐指数
7
解决办法
2万
查看次数

在MVC应用程序中,控制器或模型应该处理数据访问吗?

我们正在公司进行一些哲学辩论,讨论业务逻辑的调用应该在哪里执行CRUD操作.

我相信模型应该包含您的数据结构,并且控制器应该负责填充数据.

我的同事认为所有人口都应该在模型类中完成,并且只需要由控制器调用.这使控制器整洁干净(但在我看来,这会使模型变得混乱).

他还认为,任何返回Json对象的调用都应该在模型中进行,而不是在控制器中进行.该模型将向控制器返回一个数组,然后将其作为Json对象返回.

每个人有什么不同的利弊,是否有正确或错误的方法来做到这一点?

model-view-controller

38
推荐指数
4
解决办法
2万
查看次数

MVC中的Web API和REST API有什么区别?

我对REST API有一点了解.据我所知,它用于处理HTTP服务(GET POST PUT DELETE).

当我添加一个webapi控制器时,它为我提供了一些基本方法,如:

 public class Default1Controller : ApiController
    {
        // GET api/default1
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/default1/5
        public string Get(int id)
        {
            return "value";
        }

        // POST api/default1
        public void Post([FromBody]string value)
        {
        }

        // PUT api/default1/5
        public void Put(int id, [FromBody]string value)
        {
        }

        // DELETE api/default1/5
        public void Delete(int id)
        {
        }
    }
Run Code Online (Sandbox Code Playgroud)

所以我的问题是Web API和REST API之间的区别是什么?

从rest定义开始,上面的代码基于REST,那么MVC中的普通Web API是什么?我有点困惑,因为有些人说你使用REST api的web api吗?

请提供对两者的更好理解.

c# api rest model-view-controller asp.net-web-api

38
推荐指数
2
解决办法
9万
查看次数