MVC模式与三层架构的区别,代码分层(模块化)

  常用的软件架构模型可以归类为三种架构模型:3/N层架构、“框架+插件”架构、地域分布式架构。
  将MVC模式解释成"外观"、"机制"和"功能/数据"这三层结构,那么很多人类组织也可以通过MVC模式架构。

  代码分层、分离,封装   。

  页面结构分模块,分而治之。解耦,代码可读性高,底层统一优化。
  模块化是个一般概念,这一概念也适用于软件开发,可以让软件按模块单独开发,各模块通常都用一个标准化的接口来进行通信。实际上,除了规模大小有区别外,面向对象语言中对象之间的关注点分离与模块化的概念基本一致。通常,把系统划分外多个模块有助于将耦合减至最低,让代码维护更加简单。
> MVC模式与三层架构的区别:
  三层架构(3-tier architecture) 通常意义上的三层架构: 将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为领域层)、表示层。
  MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的UI层,也就是说,MVC把三层架构中的UI层再度进行了分化,分成了控制器、视图、实体三个部分,控制器完成页面逻辑,通过实体来与界面层完成通话;而C层直接与三层中的BLL进行对话。
  mvc可以是三层中的一个表现层框架,属于表现层。三层和mvc可以共存。 三层是基于业务逻辑来分的,而mvc是基于页面来分的。 MVC主要用于表现层,3层主要用于体系架构,3层一般是表现层、中间层、数据层,其中表现层又可以分成M、V、C,(Model View Controller),模型-视图-控制器 

-- MVC与三层架构- http://www.jianshu.com/p/71ae09665214#
  三层架构中的View层简单的说就是跟用户发生直接关系的层,MVC中的V和C就是这样的存在,所以MVC中的V和C均属于三层架构的View层。同时,我们知道MVC中的M(Model)包括了数据承载Bean和业务处理Bean,其中业务处理Bean分为Service或Dao对象,分别对应业务逻辑处理和数据库操作,相应的,它们对应的是三层架构中的Service层和Dao层。


> 在编译器实现中,也有非常明显的层次之分。这些层次可以完全按照编译原理理论来划分。包括:
 1.词法分析:将文本代码拆分为一个一个合法的单词
 2.语法分析:基于 词法分析 得到的单词流构建语法树
 3.语义分析:基于 语法分析 得到的语法树进行语义上的检查等
 4.生成器:基于 语义分析 结果(可能依然是语法树)生成中间代码
 5.编译器:基于 生成器 得到的中间代码生成目标机器上的机器代码
 6.链接器:基于 编译器 生成的目标代码链接成最终可执行程序.

> 软件分层的好处之一就是对任务(task)的抽象,封装某个任务的实现细节,提供给其他依赖模块更友好的使用接口。隔离带来的好处之一就是可轻易替换某个实现。 例如很多UI库隔离了渲染器的实现,在实际使用过程中,既可以使用Direct X的渲染方式,也可以使用OpenGL的实现方式。
 1.一个良好设计的C语言程序懂得如何去抽象、封装模块/软件层。
 2.封装数据的实现,也算是构建模块化程序的一种方法。
 3.封装内部实现,暴露够用的接口,也是保持模块清晰的方式之一。

浅谈代码分层:构建模块化程序 -- http://blog.youkuaiyun.com/hrdzkj/article/details/8866775
模块化Java简介 -- http://www.infoq.com/cn/articles/modular-java-what-is-it/

--  很多代码分层的好处,它们包括(但不限于):
 1.隐藏细节,提供抽象,隐藏的细节包括数据的表示(如lua_State)、功能的实现
 2.在新的一层建立更高层的“语言”
 3.接口清晰,修改维护方便
 4.方便开发,将软件分为若干层次,逐层实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值