A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ♠Akechi♠ 中级黑马   /  2014-3-29 16:26  /  2145 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 ♠Akechi♠ 于 2014-3-29 17:18 编辑

两者相同和不同处,做哪方面开发时使用MVC?

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

6 个回复

倒序浏览
MVC是一种设计模式,我们可以用它来创建在域对象和UI表示层对象之间的区分。  
三层架构是在一个应用程序中把数据(数据层),业务逻辑(业务层),和用户接口(表示层) 分开的一种概念。把业务层和表示层分开,我们明白解决方案在一些地方是模糊的,完全分开是一件困难的事。
回复 使用道具 举报
提问不详细是不会给分的。技术分20分以上要求比较严。
回复 使用道具 举报
czwanglei 发表于 2014-3-30 12:08
提问不详细是不会给分的。技术分20分以上要求比较严。

哦知道了,一定更加严谨些
回复 使用道具 举报
♠Akechi♠ 发表于 2014-3-30 13:55
哦知道了,一定更加严谨些

恩,加油。。
回复 使用道具 举报
本帖最后由 redlong 于 2014-4-3 23:12 编辑

三层架构区分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)
优点:分工明确、条理清晰,具有可扩展性耦合度低。
缺点:增加代码量。
表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候的所见所得。
业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等每层之间是一种垂直的关系。
三层结构是N层结构的一种,一般来说,层次之间是向下依赖的,下层代码未确定其接口(契约)前,上层代码是无法开发的,下层代码接口(契约)的变化将使上层的代码一起变化。


MVC是一种设计模式,一种思想。在JAVA中也有MVC,只不过JAVA中叫Struts。
把应用程序分为三个模块:模型、视图、控制器,他们各自处理自己的任务。
模型(Model)代表应用程序的数据(data)和用于控制访问和修改这些数据的业务规则(business rule)。通常模型被用来作为对现实世界中一个处理过程的软件近似,当定义一个模型时,可以采用一般的简单的建模技术。
当模型发生改变时,它会通知视图(View),并且为视提供查询模型相关状态的能力。同时,它也为控制器(Controller)提供访问封装在模型内部的应用程序功能的能力。
一个视图(View)用来组织模型的内容。它从模型那里获得数据并指定这些数据如何表现。当模型变化时,视负责维持数据表现的一致性。视同时将用户要求告知控制器(Controller)。
控制器(Controller)定义了应用程序的行为;它负责对来自视的用户要求进行解释,并把这些要求映射成相应的行为,这些行为由模型负责实现。在独立运行的GUI客户端,用户要求可能是一些鼠标单击或是菜单选择操作。在一个Web应用程序中,它们的表现形式可能是一些来自客户端的GET或POST的HTTP请求。模型所实现的行为包括处理业务和修改模型的状态。根据用户要求和模型行为的结果,控制器选择一个视作为对用户请求的应答。通常一组相关功能集对应一个控制器。



回复 使用道具 举报
本帖最后由 ygzhong000 于 2014-4-6 19:53 编辑

有很多程序员往往把框架模式和设计模式混淆,认为MVC是一种设计模式。实际上它们完全是不同的概念。
框架、设计模式这两个概念总容易被混淆,其实它们之间还是有区别的。框架通常是代码重用,而设计模式是设计重用,架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。
框架与设计模式虽然相似,但却有着根本的不同。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。
框架模式有哪些?
MVC、MTVMVPCBDORM等等;
框架有哪些?
C++语言的QT、MFC、gtk,Java语言的SSHSSIphp语言的 smarty(MVC模式),python语言的django(MTV模式)等等
设计模式有哪些?
工厂模式、适配器模式、策略模式等等
简而言之:框架是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马