新足迹

 找回密码
 注册

精华好帖回顾

· 东京我来勒 - 梅雨季节关东游 (2014-7-8) patrickzhu · 纪念麦克 于2009年6月27日 (2009-6-28) luming
· 带钱去AU的几种办法-中行和汇丰 (2005-4-13) maggie_wang · 让人哑口无言的“扭腰”芝士蛋糕 (2012-9-18) 河水洋洋
Advertisement
Advertisement
12
返回列表 发新帖
楼主:psaux

对于MVC, 大家都同意 fat models, skinny controllers 吗? [复制链接]

发表于 2011-8-2 19:25 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 乱码 于 2011-8-2 18:12 发表


这样有问题,static的class几乎所有市面上的mocking framework都不能作test,如果用不是free的那几个,就还行。

不过static的现在很多人也不提倡用,即使是utility class,而不跟state相关的,大家也比较避讳,我也不知道为什么。

我个人没这么极端,觉得除了不能test,其他的都ok.


是不是说,去掉static,然后在调用的时候先产生object,那样更好?
austeps obj=new austeps();
obj.send_email(XXXXX);

[ 本帖最后由 典 于 2011-8-2 18:30 编辑 ]
Advertisement
Advertisement

发表于 2011-8-2 19:30 |显示全部楼层
此文章由 windix 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 windix 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Ruby on Rails, validation 放 model 里面

model 是 ActiveRecord, 本身就支持多种validation的

e.g.:

class Person < ActiveRecord::Base
  validates_confirmation_of :email
  validates_presence_of :email_confirmation
end

http://guides.rubyonrails.org/ac ... ions_callbacks.html

你的话题也是ROR早就提倡的:
http://weblog.jamisbuck.org/2006 ... ontroller-fat-model

发表于 2011-8-2 19:34 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2011-8-2 18:25 发表


是不是说,去掉static,然后在调用的时候先产生object?
austeps obj=new austeps();
obj.send_email(XXXXX);


对rhino mocks来说,只是去掉static还不行,要测试的method还要做成virtual的,不然不能mock,而且很多private的method要做成Public,这跟oo的encapsulation精神很不相符。

除非换其他付费的framework,否则,又要纯OO,又要TDD就是句空话.

前几天我写proposal让我们这边换一个,不过放弃掉rhino mocks也不是那么容易,毕竟很多人用的很习惯,而且它在community有很好的支持。

又想了一下,如果用ioc container来管理object的creation/dispose和他们的lifestyle policy,自己做的static class也没什么太大的用,只要把class的lifestyle在container中设成singleton,它和static class效果是一样的,而且还可以让programming on abstraction,所以static class现在可以完全不用了。

[ 本帖最后由 乱码 于 2011-8-2 19:53 编辑 ]

发表于 2011-8-2 19:51 |显示全部楼层
此文章由 典 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 典 所有!转贴必须注明作者、出处和本声明,并保持内容完整
http://weblogs.asp.net/scottgu/a ... del-validation.aspx
微软的这个帖子似乎是说在model写基本的代码attribute,

然后view 那边也能有validate,
最后在controller里做if else控制,

这样一来,每个地方model / view / controller都涉及到了

发表于 2011-8-2 20:57 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 于 2011-8-2 18:51 发表
http://weblogs.asp.net/scottgu/a ... del-validation.aspx
微软的这个帖子似乎是说在model写基本的代码attribute,

然后view 那边也能有validate,
最后在controller里做if else控制 ...


我很支持你用client side js framework作validation的

发表于 2011-8-2 22:47 |显示全部楼层
此文章由 psaux 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 psaux 所有!转贴必须注明作者、出处和本声明,并保持内容完整
坦白说,.net的mvc是完全自己的一套,所以做为.net 的programmer你的选择不多,因为你不按着他的路子写,你的code会很难看。viewmodel大概是.net的独创,mvc之所以诞生的原因之一就是separation,.net又把它给合并了,至少在名字上。
Advertisement
Advertisement

发表于 2011-8-2 22:57 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 psaux 于 2011-8-2 21:47 发表
坦白说,.net的mvc是完全自己的一套,所以做为.net 的programmer你的选择不多,因为你不按着他的路子写,你的code会很难看。viewmodel大概是.net的独创,mvc之所以诞生的原因之一就是separation,.net又把它给合并了,至少在名字上。


抱歉,可能我没说清楚.

ViewModel是我们自己的naming convention,可以不按这个来(得承认这名字的确有点confusion), 只要说明这个model是给这个view的就好,跟广义概念上的view/model不一样。

发表于 2011-8-2 23:03 |显示全部楼层
此文章由 psaux 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 psaux 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 乱码 于 2011-8-2 21:57 发表


抱歉,可能我没说清楚.

ViewModel是我们自己的naming convention,可以不按这个来(得承认这名字的确有点confusion), 只要说明这个model是给这个view的就好,跟广义概念上的view/model不一样。

理解理解,btw,在open source里,哪个model的data给哪个view用这是controller的job,在.net mvc里难道是直接从model map到view吗?

发表于 2011-8-2 23:11 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 psaux 于 2011-8-2 22:03 发表

理解理解,btw,在open source里,哪个model的data给哪个view用这是controller的job,在.net mvc里难道是直接从model map到view吗?


不是阿,asp.net mvc中model map 到view可用的数据也是通过controller这一关控制的,拿到model,用哪个view是controller说了算,可以1个controller对应好几个view,或者一个view对应好几个controller,虽然后者不值得提倡,但技术上可以实现。

2010年度奖章获得者

发表于 2011-8-2 23:13 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
这种光脚搞笑贴大家散了吧。

lz麻烦你去 asp.net/mvc 好好先看看再来问些有针对性的,有见地一点问题吧。

发表于 2011-8-2 23:23 |显示全部楼层
此文章由 psaux 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 psaux 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 乱码 于 2011-8-2 22:11 发表


不是阿,asp.net mvc中model map 到view可用的数据也是通过controller这一关控制的,拿到model,用哪个view是controller说了算,可以1个controller对应好几个view,或者一个view对应好几个controller,虽然后者不值得提倡,但技术上可以实现。

http://blogs.msdn.com/b/dphill/a ... wmodel-pattern.aspx
Advertisement
Advertisement

发表于 2011-8-2 23:28 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 psaux 于 2011-8-2 22:23 发表

http://blogs.msdn.com/b/dphill/a ... wmodel-pattern.aspx


MVVM阿,不是mvc的范围了,大老虎,你给解释一下

2010年度奖章获得者

发表于 2011-8-2 23:38 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我忙着打酱油呢

发表于 2011-8-3 09:49 |显示全部楼层
此文章由 psaux 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 psaux 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2011-8-2 22:13 发表
这种光脚搞笑贴大家散了吧。

lz麻烦你去 asp.net/mvc 好好先看看再来问些有针对性的,有见地一点问题吧。

不好意思,我对asp.net/mvc不感兴趣,我也麻烦你好好看看之前的内容,这贴本来就不是针对.net/mvc发的。另外拜托你尊重一下已经发贴的朋友,你莫名其妙跑进来让大家散了,你以为你是谁啊?

感谢所有回帖的朋友,你们让我受益匪浅。

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部