Web项目结构分层

Posted LoveTomato

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web项目结构分层相关的知识,希望对你有一定的参考价值。

分层的必要性

一个项目必然有其相应的业务逻辑,而一般的业务逻辑不可能特别简单。如果将这样的项目写在一层,那么这层的逻辑将会变的复杂,不利于后期的维护。如果根据不同的功能进行分层,每层负责相应的逻辑,则提高程序的可读性,利于后期维护。

分层介绍

这里将项目分为5层,如果项目不是特别复杂,可以适当减少层数。5层分别为:业务逻辑层、数据访问称、服务称、表现层和用户层。

案例

这里利用一个小案例大概展示下各层的协作,关于各层的详细作用将在以后讲解。案例如下:
超市分别向一般顾客和零售商出售商品。现在搞打折活动,一般顾客和零售商采用不同的打折策咯。

业务逻辑层(Business Logic)

主要包括业务所涉及的实体(Model)和实体(Model)间的业务逻辑,根据具体情况采用相应的设计模式(Design Pattern)使代码满足设计原则。
声明数据访问的接口IProductRepository,本层不关心数据数据查询和存储的逻辑。

数据访问称

这里采用仓储模式Repository,一般采用ORM框架。常用的ORM框架有Entity Framework和NHibernate。

服务层

一般需要发布服务的项目需要服务层,根据外观模式Facde隐藏业务业务逻辑。
定义请求和返回数据类,数据返回类型结构一般为

public class ProductListResponse
	{
		public bool Success { get; set; }
		public string Message { get; set; }
		public IList<ProductViewModel> Products { get; set; }
	}

而且这里会涉及到对象的映射,添加viewModel,只包含需要用户看的的属性(可用第三方插件AutoMapper)。

表现层

用户表现层的操作逻辑。常用的模式有MVC和MVVM模式,目的是表现层逻辑与UI层逻辑分离。MVVM的优点是可脱离UI层创建单元测试,但是为每个页面创建指挥类Presenter也会增加代码维护负担。

UI

展现给用户的界面层。一般需要结合CSS控制页面样式和javascript页面交互。

代码下载

以上是关于Web项目结构分层的主要内容,如果未能解决你的问题,请参考以下文章

spring---web项目结构分层

项目目录结构划分和代码分层

Web实验-Servlet控制层设计HTML-分层

Web开发的分层结构与MVC模式

java Web之:分层设计

从Discuz!NT项目文件结构看如何给系统框架分层和类库分文件夹