电子商务网站设计中三层架构与MVC设计模式的对比和选择

2022-09-11

1 引言

在基于DOTNET技术的网站设计开发中, 主要有两种设计模式。

微软推荐的分层式结构, 一般分为三层, 从下至上分别为:数据访问层、业务逻辑层、表示层。表示层 (UI) :通俗讲就是展现给用户的界面, 即用户在使用一个系统的时候他的所见所得;业务逻辑层 (BLL) :针对具体问题的操作, 也可以说是对数据层的操作, 对数据业务逻辑处理;数据访问层 (DAL) :该层所做事务直接操作数据库, 针对数据的增、删、改、查。

MVC设计模式。和三层架构不同的是MVC是典型的平行关系, 没有说谁在上谁在下的关系, 实体负责业务领域的事情, 视图负责显示的事情, 控制器把数据读取出来填充模型后把模型交给视图去处理。

很多设计人员在设计过程中, 容易把MVC, 多层混合起来用, 很容易造成网站设计过程中, 效率和灵活性都降低。因此, 以下将首先阐述三层架构设计和MVC设计模式, 通过一个简单的实例, 探讨了这两种设计模式, 并对各自的优缺点进行分析。

1.1 三层架构设计分析

N层结构是一种软件抽象的层次结构是对复杂软件的一种纵向切分, 每一层次中完成同一类型的操作, 以便将各种代码以其完成的使命作为依据来分割, 以将低软件的复杂度, 提高其可维护性。

三层是指逻辑上的三层, 通过引入中间层, 将复杂的商业逻辑从传统的双层结构应用模型中分离出来, 并提供了可伸缩、易于访问、易于管理的方法, 从而实现了便捷、高效、安全、稳定的企业级系统应用。三层架构中, DAL (数据访问层) 、BLL (业务逻辑层) 、U (表示层) 各司其职, 意在职责分离。

1.2 MVC设计分析

M V C是M o d e l-V i e w-C o n t r o l l e r, 即实体、视图、控制器三个部分。MVC中的三个事物之间并不存在明显的层次结构, 没有明显的向下依赖关系。Model是代表组件状态和低级行为的部分, 系统维护它和View之间的关系。View代表了管理model所含有的数据的一个视觉上的呈现。Controller管理着Model和用户之间的交互的控制。

2 电子商务网站中两种设计的应用

在这里, 将使用一个简单的电子商务商店应用来示范三层架构和MVC框架的工作原理。该网站提供如下功能。

(1) 提供商品分类列表。

(2) 点击分类列表显示该分类所有商品。

(3) 点击某商品显示该商品的详细信息。

根据功能, 要设计3个场景, 分别是所有类别一览、某类别所有商品一览和商品详情一览。为简化设计, 后台数据库设计了2个数据表类别表Category (ID, Cate Name) , 商品表Products (ID, Cate ID, Product Name, Product Detail) 。

2.1 用三层架构来设计电子商务网站

ASP.NET三层设计中, 要完成DAL (数据访问层) 、BLL (业务逻辑层) 、UI (表示层) 的设计。

首先是完成数据访问层 (DAL) 的设计, 该层主要完成所有的数据访问功能, 例如添加、修改、删除数据等操作。

其次是业务逻辑层 (BLL) 的设计, 该层依赖于数据访问层 (DAL) 和数据实体层 (Entity) , 一般定义各个业务的的名称, 中间极少出现具体的代码实现, 主要描述业务逻辑。

最后要实现的是表示层 (UI) , 该层依赖于业务逻辑层 (BLL) 和数据实体层 (Entity) , 将业务逻辑层执行的业务操作的结果输出显示。

2.2 用M V C来设计电子商务网站

ASP.NET MVC应用的默认目录结构有三个顶层目录:/Controllers、/Models、/Views控制器类置于/Controllers目录之中, 数据模型类置于/Models目录之中, 视图模板置于/Views目录之中。MVC框架一般以不同的方式把URL映射到服务器代码上。它不是将URL映射到硬盘上的模板文件, 而是直接把URL映射到代码类上。这些类称为“Controllers (控制器) ”, 它们负责处理到来的请求, 处理用户输入和交互, 执行基于输入和交互的相应的应用和数据逻辑。然后, 一个Controller类一般会调用单独的“视图”组件, 该组件负责生成请求的实际的HTML输出。

2.2.1 控制类的设计

首先添加一个新的“Products Controller”类, 用于处理所有的控制。在默认情形下, ASP.NET MVC项目有一套预先配置好的URL规则, 默认情形下, 一个以/Products/开头的URL会被映射到名为Products Controller的类上。

根据以上功能分析, 要在该类中设计3个方法, 分别来实现这3个场景的控制。

2.2.2 数据模型类的设计

在MVC世界里, “MODEL (模型) ”是负责保持状态的应用组件。在web应用中, 这个状态一般都持久于数据库之中。当前有2个MODEL, 分别是Products对象和Cate对象, 用来代表数据库里Products表中的数据和Category表中的数据。

2.2.3 视图类设计

在建造为特定个别控制器所用的视图时, 默认的ASP.NET MVC约定是, 把它们存放在Views根目录的子目录里。视图将使用Products Controller中的相关方法来显示适当的界面, 可以用内置的ASP.NET视图引擎来实现界面。

3 两种设计模式的比较分析

通过以上的分析, 我们可以总结出。

使用三层架构设计, 开发人员可以只关注整个结构中的其中某一层;可以很容易的用新的实现来替换原有层次的实现;可以降低层与层之间的依赖;有利于标准化;利于各层逻辑的复用。

使用MVC模式, 开发人员最大限度地以松耦合方式开发自己的程序, 能够更清晰地分离关注点, 更便于进行单元测试, 从而能够更好地控制URL和HTML内容。

MV C中每个块都是可以独立测试的, 而三层结构中, 上层模块的运行测试势必要提供下层代码或者提供相同的接口。相对来说, MVC复杂得多, 但是结构更清晰, 耦合性更低。

摘要:本文以电子商务网站中商品浏览应用为例, 详细分析了三层架构设计与MVC设计的思路与实现过程, 通过对比这2种设计模式的优缺点, 使开发者明确在基于DOTNET网站设计过程中, 该选择何种设计模式。

关键词:电子商务,三层架构,MVC设计模式,网站设计

参考文献

[1] Seth Ladd, DarrenDavison.深入解析Spring MVC与Web Flow[M].2008, 11.

[2] Stephen Walther.ASP.NET2.0Unlea shed[M].2006, 7.

上一篇:科技创新背景下的高校图书馆下一篇:让兴趣引导学生学好计算机