跪求解脱,MVC中的M让人吐血...

aspnet30 2011-04-14 03:54:48
C#和java区都让我不满意,我想也许是web中的MVC和桌面应用MVC的不同原因吧,特来C++版求解脱...

我有以下不解

1、首先是MVC的起源,MVC的优点是将View和Model分离,并且高度重用,一看到这句话,我就想把电脑砸了,即使没有MVC,我想任何程序设计的时候,都是把业务逻辑和数据操作做成类库API形式,即然是类库,自然高度重用,我是做.net的,.net中建了类库,哪个项目都能用,MVC的优点,这算哪门子事...

2、MVC中M的作用,在web领域的MVC中,大都数人理解的是DAL和BLL的结合,也就是操作数据库和业务逻辑,那也算就是一个类库了,这算哪门子MVC。

3、MVC中的model有一句话是这么说的:"模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变",悲剧了,我理解了半天,都无法理解模型中数据的变化,模型是一些操作数据和业务逻辑的方法函数,模型中哪来的数据,又哪来的变化,model怎么会变动呢??
...全文
1104 48 打赏 收藏 转发到动态 举报
写回复
用AI写文章
48 条回复
切换为时间正序
请发表友善的回复…
发表回复
knowledge_wanted 2011-12-01
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 forestdb 的回复:]
在页面展示的代码里面,充斥着数据库的连接,sql语句,if判断。
在业务处理的逻辑里面,充斥着字体调整,颜色设置,位置设置。
[/Quote]
这样的页面咋处理啊。。。
嘿嘿,刚接触一个项目,用到MVC的思想,感觉把逻辑处理和视图显示进行分离后,问题超好解决,各方面理解超级清晰。。。
An4Greenhand 2011-09-10
  • 打赏
  • 举报
回复
楼主 我是学php的 mvc 我们说的就是一种编程思想 好处的话,分工明确啦 M,有专业DBA去写 v,有前台设计人去写 c 就是我们写的啦
model -模型层 ,主要负责数据库的操作(增删改查)等
view -视图层/显示层 , 主要是显示页面的 展示的
controller-控制层 ,是协调M与v的
不知道说的是不是跟你的问的有什么偏差 没有
解未知数 2011-04-19
  • 打赏
  • 举报
回复

足球中国 2011-04-18
  • 打赏
  • 举报
回复
mfc能实现功能已经不错了。搞啥分层不分层的。乱搞。
wjlazio 2011-04-17
  • 打赏
  • 举报
回复
学习了。。。。
pywepe 2011-04-17
  • 打赏
  • 举报
回复
.net winform有M吗?

swing 完全MVC
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 tr0j4n 的回复:]
MVC我想如果你在.net和Java板块都得不到你想要的结果,来这边肯定也得不到。
MVC的概念本身在VC的Windows的程序中就已经弱化到不能再弱化了,主要还是针对Web。

至于解耦,依赖性,设计模式等,VC程序员更加没那么重视。我建议你可以去JavaEye问问看
[/Quote]

其实不能说 mvc在vc 程序中 弱化,其实深刻理解mfc的底层机制 m v c还是很清楚的

上面有人说mfc中没有controller这个不能同意

mfc中的事件模型也是一种controller 就是利用的机制较为特殊

如果是 现在的人写可能用函数指针 这类技巧比较多,主要是为了响应 model数据的变化影响view

而当时用的技术是 宏封装 信息状态,这个恐怕在非c写法中很难得能看到

楼主问model的数据是为什么变化,其实很好理解 你的操作不同 产生了 要求 数据变化的事件

model当然会变了
辰岡墨竹 2011-04-17
  • 打赏
  • 举报
回复
Java EE里的MVC体系比较完善,数据关联的封装十分完备,lz了解Structs,Spring,Hibernate以后就不会那么说了。很多C#和PHP的MVC框架也只不过把Model理解为单纯数据库操作罢了。
wwxxyy1234 2011-04-17
  • 打赏
  • 举报
回复
那些理论的东西 都是这样讲的 事实在工作中真正用的感觉不是很多啊 我现在在全球500强的公司 里面的IT还不是一样乱七八糟
青稞 2011-04-17
  • 打赏
  • 举报
回复
模式都是为了更加方便解决现实问题的,为了模式而使用模式,违背了模式的使用初衷。
楼主跳出具体的代码,站在架构的层面上去理解,应该要好得多。
Mr-Jee 2011-04-17
  • 打赏
  • 举报
回复
如果想理解mvc
我倒是建议玩ruby on rails或者django
lyyscf 2011-04-16
  • 打赏
  • 举报
回复
第三个说的好像是设计模式中的观察者模式吧
“模型中数据的变化一般会通过一种刷新机制被公布。”
这个里面的数据就是被观察的对象,被这个数据影响的所有对象都加入到被观察的对象的一个表里(也就是注册),只要数据有变化,就通知所有的观察者
CppCoder 2011-04-16
  • 打赏
  • 举报
回复
从编译时类型判断到运行时,利用面向对象的多态技术
MoXiaoRab 2011-04-16
  • 打赏
  • 举报
回复
还有就是针对什么是MVC,这个大家都清楚,但是到了实践的时候,因人各异。

LZ,你可以借鉴一下优秀的开源框架或是项目,来加以理解,杂糅成你自己的概念,然后按这个概念去实践就好了。
MoXiaoRab 2011-04-16
  • 打赏
  • 举报
回复
MVC我想如果你在.net和Java板块都得不到你想要的结果,来这边肯定也得不到。
MVC的概念本身在VC的Windows的程序中就已经弱化到不能再弱化了,主要还是针对Web。

至于解耦,依赖性,设计模式等,VC程序员更加没那么重视。我建议你可以去JavaEye问问看
aspnet30 2011-04-16
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 c_joewang 的回复:]

如果你对设计模式有所了解理解起来可能会好些,里面有一个观察者模式,这里的视图可以理解为是一个观察者,向模块注册的意思是当模块更新时会通知向它注册的观察者来更新自己的状态,其实就是模块数据变化引起视图用新数据显示程序当前状态。
[/Quote]

这个我了解的,像pureMVC,就是用的发送通知实现观察者模式
c_joewang 2011-04-16
  • 打赏
  • 举报
回复
如果你对设计模式有所了解理解起来可能会好些,里面有一个观察者模式,这里的视图可以理解为是一个观察者,向模块注册的意思是当模块更新时会通知向它注册的观察者来更新自己的状态,其实就是模块数据变化引起视图用新数据显示程序当前状态。
aspnet30 2011-04-16
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 yao050421103 的回复:]

1. API的复用是微观层面的复用,MVC里面Model的复用是宏观层面的可复用,两个关注的复用点不一样的。举例说明:Windows API和MFC,一个是底层,一个是框架。差别在哪里呢?用线性代数类比的话,API提供的就是基向量,而MFC提供的则是基向量的各种组合。也就是说,凡是你用MFC能完成的事情,用API都能完成,但是这需要你自己重头组合一次,效率一般就比不上MFC(我说的是一般情况);……
[/Quote]

让一个.net程序来理解MVC,是一件多么痛苦的事,.net中开发的时候,无论是web,还是桌面应用,通过三层架构,什么都解藕了,MVC又有何意义?

还有MVC中的model,很多框架中这个model,存储了VO(View Object),我想,这是MVC中的Model,和三层中的DAL和BLl最大的区别吧,但我不理解为什么要存储VO
fos_jpg 2011-04-16
  • 打赏
  • 举报
回复
各种封装、各种分层--我理解的各种设计模式。。。菜鸟飘过
菠萝先生 2011-04-16
  • 打赏
  • 举报
回复
模型(Model),视图(View)和控制Controller)
我来试着给你解脱一下,
模型(Model)一般指的是 业务模型 + 数据模型
视图(View)其实是一种结果的表现形式
控制(Controller)用来接收请求,并作出给予何种回馈的决策。

1.先讲重用(其实您这里理解的重用是狭义的代码/函数复用)
打比方:打比方你报考一所大学(分数能上),
a.大学收到你的志愿(请求)
b.大学招生办(控制)它会请求学校里很多部门协调作出决定(业务逻辑)。
c.大学招生办根据这个决定给你回复。
被录取/未录取
i: 招生办可能打电话通知你被录取了
ii: 招生办可能通过写信告诉你,你被录用了
iii:招生办可能通过电子邮件告诉你,你被录取了

招生办通过什么手段通知你,这便是一个控制。
你得到信息的表现形式,便是一个视图。

就这么多先

加载更多回复(25)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧