MVC与三层架构的理解

1.MVC思想

MVC(Model View Controller)是软件工程中的一种软件架构模式,它把软件系统分为模型、视图和控制器三个基本部分。用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

View(视图)

简单来说,就是负责数据的可视化。

Controller(控制器)

通常控制器用来从视图读取数据,并发送给对应的模型处理,再将结果反馈给视图显示。充当视图与模型之间数据交互的桥梁。

Model(模型)

模型是用于处理应用程序中业务数据和逻辑的部分,负责直接与数据库打交道。


2.优缺点

【优点】

  1. 耦合性低。视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动 MVC 的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。

  2. 重用性高。一个模型能被多个视图共享,这意味着从模型传回来的数据能以多种方式显示,而不需要为每一种显示方式编写特定的代码,大大减少了代码量。

  3. 部署快。使用 MVC 模式使开发时间得到相当大的缩减,后台程序员集中精力于业务逻辑,前端程序员集中精力于表现形式上。

  4. 可维护性高。分离视图层和业务逻辑层也使得 WEB 应用更易于维护和修改。

  5. 有利软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。

【缺点】

  1. 使得项目架构变得复杂,对开发人员要求高。
  2. 视图与控制器间的过于紧密的连接。
  3. 视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。


3.三层架构

三层架构通常意义上的三层架构就是将整个业务应用划分为:界面层[表示层](User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的目的即为了“高内聚低耦合” 的思想。
MVC与三层架构的理解_第1张图片


4. 优缺点

【优点】

开发人员可以只关注整个结构中的其中某一层;

可维护性高,可扩展性高。

可以降低层与层之间的依赖;

有利于标准化;

利于各层逻辑的复用。

【缺点】

降低了系统的性能。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。

有时会导致级联的修改,这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码,增加了开发成本。

 

你可能感兴趣的:(mvc)