标签: model-view-controller

在编码c#方面,MVC,MVP和MVVM设计模式有什么区别?

如果我们使用短语"MVC,MVP和MVVM设计模式之间有什么区别"来搜索Google,那么我们可能会得到一些URL ,它们在理论上讨论了MVC MVP和MVVM设计模式之间的区别:

MVP

在无法通过datacontext进行绑定的情况下使用.Windows Forms就是一个很好的例子.为了将视图与模型分开,需要演示者.由于视图无法直接绑定到演示者,因此必须通过接口(IView)将信息传递给视图.

MVVM

在可以通过datacontext进行绑定的情况下使用.为什么?删除了每个视图的各种IView接口,这意味着需要维护的代码更少.可以使用MVVM的一些示例包括使用Knockout的WPF和javascript项目.

MVC

用于视图与程序其余部分之间的连接并不总是可用的情况(并且您无法有效地使用MVVM或MVP).这清楚地描述了Web API与发送到客户端浏览器的数据分离的情况.Microsoft的ASP.NET MVC是一个管理这种情况的好工具,并提供了一个非常清晰的MVC框架


但我没有找到一篇文章,从理论上和示例代码讨论差异.

如果我得到一篇文章讨论这3种设计模式(MVC,MVP和MVVM)与代码之间的区别,那将是非常好的.

我想了解3个类似的CRUD应用程序的源代码,这些应用程序已经通过这三种设计模式(MVC,MVP和MVVM)实现.这样我就可以浏览代码并理解应该如何为这三种设计模式(MVC,MVP和MVVM)编写代码.

因此,如果存在任何此类文章讨论代码对于这3种设计模式(MVC,MVP和MVVM)的外观有何不同,那么请将我重定向到该文章.

c# model-view-controller mvp design-patterns mvvm

188
推荐指数
4
解决办法
14万
查看次数

什么是数据传输对象?

什么是数据传输对象?

在MVC中是模型类DTO,如果没有,有什么不同,我们是否需要两者?

architecture model-view-controller data-transfer data-transfer-objects dto

186
推荐指数
9
解决办法
14万
查看次数

什么进入"MVC"的"控制器"?

我想我理解MVC的基本概念 - 模型包含应用程序的数据和行为,View负责将其显示给用户,Controller负责处理用户输入.我不确定的是控制器中究竟是什么.

让我们说例如我有一个相当简单的应用程序(我专门考虑Java,但我认为相同的原则适用于其他地方).我将我的代码组织成3个叫做的包app.model,app.viewapp.controller.

app.model包中,我有一些反映应用程序实际行为的类.这些extends Observable并使用setChanged()notifyObservers()触发视图以在适当时更新.

app.view包具有一个类(或几个类用于不同类型的显示),它使用javax.swing组件来处理显示.其中一些组件需要反馈到模型中.如果我理解正确,View不应该与反馈有任何关系 - 应该由Controller处理.

那么我实际上在Controller中放了什么?我public void actionPerformed(ActionEvent e)只需要调用Controller中的方法,就可以将其放入View中吗?如果是这样,是否应在控制器中进行任何验证?如果是这样,我如何将错误消息反馈回View - 如果再次通过Model,或者Controller是否应该直接将其发送回View?

如果在视图中完成验证,我应该在Controller中添加什么?

很抱歉这个问题很长,我只想记录我对这个过程的理解,希望有人可以为我澄清这个问题!

java model-view-controller

180
推荐指数
7
解决办法
8万
查看次数

弹出窗口最优雅的方式

我有这个AngularJS应用程序.一切正常.

现在我需要在特定条件成立时显示不同的弹出窗口,我想知道什么是最好的方法.

目前我正在评估两个选项,但我绝对愿意接受其他选择.


选项1

我可以为弹出窗口创建新的HTML元素,并直接从控制器附加到DOM.

这将打破MVC设计模式.我对这个解决方案不满意.


选项2

我总是可以在静态HTML文件中插入所有弹出窗口的代码.然后,使用ngShow,我可以隐藏/只显示正确的弹出窗口.

此选项不是真正可伸缩的.


所以我很确定必须有更好的方法来实现我想要的.

javascript model-view-controller popup show-hide angularjs

178
推荐指数
5
解决办法
23万
查看次数

MVC中的业务逻辑

我有两个问题:

Q1.MVC模式中"业务逻辑"到底在哪里?我在模型和控制器之间感到困惑.

Q2."业务逻辑"是否与"业务规则"相同?如果没有,有什么区别?

如果你能用一个小例子来解释它会很棒.

model-view-controller design-patterns business-logic business-rules

172
推荐指数
7
解决办法
12万
查看次数

排序逻辑应该放在模型,视图还是控制器中?

我有一个下拉列表,显示从表到最终用户的值.我想按字母顺序排序这些值.

根据适当的MVC设计,我应该在哪个层放置我的排序逻辑:模型,视图还是控制器?

编辑:在回答LarsH的问题时,"你的意思是代码决定了什么样的顺序吗?或代码执行排序?",我最初指的是确定所需排序顺序的代码.

model-view-controller asp.net-mvc

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

Observer,Pub/Sub和Data Binding之间的区别

观察者模式,发布/订阅数据绑定有什么区别?

我在Stack Overflow上搜索了一下,没有找到任何好的答案.

我所相信的是,数据绑定是一个通用术语,有不同的实现方式,如观察者模式或发布/子模式.使用Observer模式,Observable更新其观察者.使用Pub/Sub,0-many发布者可以发布某些类的消息,0-many订阅者可以订阅某些类的消息.

是否有其他实施"数据绑定"的模式?

data-binding model-view-controller design-patterns publish-subscribe observer-pattern

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

Rails模型,视图,控制器和助手:什么在哪里?

在Ruby on Rails开发(或一般的MVC)中,我应该遵循什么快速规则来放置逻辑.

请回答是肯定的 - 把Do放在这里,而不是把它放在那里.

ruby model-view-controller ruby-on-rails

155
推荐指数
6
解决办法
4万
查看次数

ngRepeat - 限制显示结果的数量

我是一个巨大的AngularJS n00b,我甚至发现教程很难理解.本教程将引导我构建一个显示电话的应用程序.我在第5步,我认为这是一个实验,我试图让用户指定他们想要显示多少.该视图如下所示:

<body ng-controller="PhoneListCtrl">

  <div class="container-fluid">
    <div class="row-fluid">
      <div class="span2">
        <!--Sidebar content-->

        Search: <input ng-model="query">
        How Many: <input ng-model="quantity">
        Sort by:
        <select ng-model="orderProp">
          <option value="name">Alphabetical</option>
          <option value="age">Newest</option>
        </select>

      </div>
      <div class="span10">
        <!--Body content-->

        <ul class="phones">
          <li ng-repeat="phone in phones | filter:query | orderBy:orderProp">
            {{phone.name}}
            <p>{{phone.snippet}}</p>
          </li>
        </ul>

      </div>
    </div>
  </div>
</body>
Run Code Online (Sandbox Code Playgroud)

我添加了这一行,用户可以输入他们想要显示的结果数量:

How Many: <input ng-model="quantity">
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

function PhoneListCtrl($scope, $http) {
  $http.get('phones/phones.json').success(function(data) {
    $scope.phones = data.splice(0, 'quantity');
  });

  $scope.orderProp = 'age';
  $scope.quantity = 5;
}
Run Code Online (Sandbox Code Playgroud)

重要的是: …

javascript model-view-controller scope angularjs

147
推荐指数
2
解决办法
19万
查看次数

MVC对n层架构

我想知道MVC(这是一种架构模式)与应用程序的n层架构之间究竟有什么区别.我搜索了它但找不到简单的解释.可能我对MVC概念有点天真,所以如果有人能解释其中的差异,那就太棒了.

干杯

model-view-controller n-tier-architecture

140
推荐指数
9
解决办法
8万
查看次数