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页面交互。

代码下载

转载于:https://www.cnblogs.com/LoveTomato/p/9319128.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值