标签: model-view-controller

服务层和存储库

我现在一直在使用MVC框架,我真的很喜欢这些问题是如何被分离出来的.我养成了让控制器完成相当多工作的坏习惯.所以我真的在寻找一些建议.

当我第一次开始使用MVC时,我常常让控制器在数据库工作完成后对模型进行操作.我知道这很糟糕所以将这项工作转移到模型中.但是我对此并不满意,因为我希望我的模型能够很好地学习.

我已经做了一些阅读,我看到人们通过提供服务层来保持他们的控制器和模型,我喜欢它的外观.

我只是想了解服务层和存储库应该如何协同工作.以下是我的假设,如果这是一种好的工作方式,请你告诉我吗?

  1. 如果不需要对数据进行操作,则控制器可以直接调用存储库,因此服务层不需要涉及
  2. 一旦需要对数据(业务逻辑)进行任何工作,那么这应该在服务层完成,并且控制器将在需要时对服务层进行简单调用.
  3. 一旦服务完成了它的业务逻辑,它就会根据需要使用存储库(如果需要保留数据).
  4. 理想情况下,模型应该保持精益,理想情况下,行动只不过是DTO
  5. 数据验证将在模型中完成(使用MonoRail验证属性).我很感激甚至没有人喜欢用很多属性污染他们的模型,但这是一个不同的讨论.我喜欢MonoRail的验证属性,可以在UI中自动进行jQuery验证.

我试图将我的所有代码都转换为单一责任原则,因此试图理清我的编码实践.

谢谢

c# model-view-controller castle-monorail repository-pattern

47
推荐指数
3
解决办法
7899
查看次数

Presenter,Presentation Model,ViewModel和Controller之间有什么区别?

我很清楚这些模式中的每一个是如何工作的,并且知道它们之间的一些细微差别,但它们真的是彼此之间的差异吗?

在我看来,Presenter,Presentation Model,ViewModel和Controller本质上是相同的概念.

为什么我不能将所有这些概念归类为控制器?我觉得它可能会大大简化整个想法.

任何人都可以清楚地描述他们的差异吗?

我想澄清一点,我确实理解模式是如何工作的,并且已经在一种技术或另一种技术中实现了大部分模式.我真正想要的是某人对这些模式之一的体验,以及为什么他们不会将他们的ViewModel视为一个控制器.

我会给出一些声望点,但我正在寻找一个非常好的答案.

model-view-controller mvp design-patterns presentation-model mvvm

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

我什么时候打电话给班级管理员,经理或服务员?

也许这对你来说很明显.我是java的新手(半年工作),我与同事讨论过.根据他们的职责,我很难找到我的课程.为此,我的班级获得了他们不应该承担的责任.

你能帮助我吗?

顺便说一句:我正在一个项目中工作,我必须使用服务类的持久层.我已经将我的包拆分为模型,服务和持久性.

java architecture model-view-controller naming-conventions

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

什么是MVC,它有什么优势?

我发现什么是mvp和mvc,有什么区别,但它并没有真正回答这个问题.

我最近开始使用MVC,因为它是我和我的工作伙伴将要使用的框架的一部分.我们之所以选择它是因为它看起来很容易并且从显示中分离出来的过程,除此之外还有我们不知道的优点,可能会错过吗?

优点

  1. 显示和处理是分开的


缺点

  1. 到目前为止没有

model-view-controller design-patterns

46
推荐指数
3
解决办法
10万
查看次数

日期的数据注释范围

是否可以使用[Range]日期注释?

就像是

[Range(typeof(DateTime), DateTime.MinValue.ToString(), DateTime.Today.ToString())]
Run Code Online (Sandbox Code Playgroud)

c# model-view-controller asp.net-mvc date data-annotations

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

SproutCore与卡布奇诺

除了语言差异Javascript vs. Objective-J Cappuccino在SproutCore中提供了哪些好处,反之亦然?

就长期预测而言,SproutCore是否比卡布奇诺更"支持",因为它得到了Apple的支持?

我想在两者之间做出选择.我熟悉JavaScript和Objective-C.

javascript model-view-controller cappuccino objective-j sproutcore

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


我在哪里可以找到MVC的明确例子?

我已经阅读了一些关于MVC的内容,但我仍然不明白何时应该使用它们以及什么时候不应该使用它们.我正在寻找明确的例子,说" 如果你正在开发这个,那么你应该使用MVC,就像这样 "和" 如果你正在开发它,你不应该使用MVC. "大多数例子我都是看到依赖于已经实现了所有内容的复杂框架,你必须学习框架并使用它来了解真正发生的事情.对于许多程序员来说,诸如" UI业务逻辑 "之类的措辞听起来像营销术语 - 例如,在这篇文章中使用了" 而不是视图直接绑定到演示模型 " .

我知道可能潜伏在阴影中的危险,因为MVC是一个概念,每个人都觉得他们最了解它,但没有人真正知道如何使用它,因为可能涉及很多变量,每个人都被允许拥有关于如何将项目分解为模型,视图和控制器的不同视角.有很多理论,但很少有明显的例子.我正在寻找的不是"最好"的方式,所以这不应该被认为是主观的; 我正在寻找不同的简单实现,这将允许我自己决定哪种是最好的方法.

简洁地说:什么是良好的在线资源,提供在各种情况下使用MVC的赞成和反对论据,并提供明确的例子来帮助读者理解这个概念?

model-view-controller

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

如何在Rails 3控制器中更改视图文件的默认路径?

我有一个控制器叫ProjectsController.默认情况下,它的操作会查找内部视图app/views/projects.我想改变这种路径的所有方法(index,show,new,edit等...)在控制器中.

例如:

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
Run Code Online (Sandbox Code Playgroud)

请注意我并没有更改每个方法,render而是为所有方法定义默认路径.这可能吗?如果是这样,怎么样?

谢谢!

ruby model-view-controller ruby-on-rails ruby-on-rails-3

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

Backbone.js - 存储状态信息的位置?

我是Backbone.js的新手,我正试图找出状态变量应该存在的位置.我的用例:

我有一个应用程序,为一本书提供阅读界面(我知道,经典的例子,对吧?).我的模型是BookPage每个的集合类.应用程序的结构看起来大致如此(原谅ASCII visio):

+------------+
| Controller |
+------------+
    |      Views                 Models
    | +--------------+      +----------------+
    |-|  IndexView   |------| BookCollection |
    | +--------------+      +----------------+
    |                               |
    | +--------------+      +----------------+
    +-|   BookView   |------|     Book       |
      +--------------+      +----------------+
       |                            |
       | +--------------+           |
       |-|  TitleView   |-+         |
       | +--------------+ | +----------------+
       |                  +-|     Page       |
       | +--------------+ | +----------------+ 
       +-|   PageView   |-+
         +--------------+ 
Run Code Online (Sandbox Code Playgroud)

也就是说,Controller实例化和协调两种观点,IndexViewBookView通过模型的支持.该BookView实例化和协调一组子视图(实际上有比这里更所示).

国家信息包括:

  • 当前的书(指针或id)
  • 当前页面(指针或id)
  • 其他UI状态变量,例如页面上的图像是否可见,其他窗口小部件是打开还是关闭等. …

javascript model-view-controller backbone.js

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