Welcome

首页 / 软件开发 / 数据结构与算法 / 企业级应用框架:三层架构之解耦

企业级应用框架:三层架构之解耦2015-03-04 cnblogs 虔诚者

前言

前段时间朋友拿了个网站给我,让我帮忙添加几个小功能,我爽快的答应了,但是当我打开源码,我瞬间就奔溃了,整个项目连最基本的三层框架也没有搭建,仅仅是封装了一个sqlhelp作为数据库的操作接口,项目中的SQL查询语句无处不在,业务逻辑紧紧耦合在UI逻辑中,看到这样的代码,坦白来说,我什么兴致都没有了,但是碍着人情,我硬着头皮,把基本功能的完成交差,通过这件事情,我对软件分层进行了深入的思考。

三层架构

说到三层架构,大伙都很熟悉,我也不再多啰嗦了,我们直接快速搭建一个。

项目的引用关系是:StructWed->BLL,Model;BLL->DAL,Model;DAL->Model。下面我们来演示一下程序流程,假设我们的数据库有一张订单表Order表,我们的业务是针对Order表进行的增删改查,那么根据三层架构的编程模式,我们就需要建立起对应的Model层实体,数据访问层实体和业务层实体,我们分别用OrderModel,OrderDAL,OrderBLL表示,代码如下,由于仅仅是为了演示,所以我并未提供相应的实现。

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Mode{public class OrderModel{public int ID { get; set; }public int productName { get; set; }public DateTime CreateTime { get; set; }}}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Mode;namespace DaL{public class OrderDAL{/// <summary>/// 向Order表插入数据/// </summary>/// <returns>成功:true,失败:false</returns>public bool Insert(){return true;}/// <summary>/// 修改Order表数据/// </summary>/// <param name="model">表数据对应实体</param>/// <returns>成功:true,失败:false</returns>public bool Update(OrderModel model){return true;}/// <summary>/// 删除Order表指定ID的记录/// </summary>/// <param name="id">表ID</param>/// <returns>成功:true,失败:false</returns>public bool Delete(int id){return true;}}}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using DaL;using Mode;namespace Bll{public class OrderBLL{protected OrderDAL orderDal = new OrderDAL();public bool Insert(OrderModel model){//业务点1//业务点2return orderDal.Insert();}/// <summary>/// 修改Order表数据/// </summary>/// <param name="model">表数据对应实体</param>/// <returns>成功:true,失败:false</returns>public bool Update(OrderModel model){//业务点1//业务点2 return orderDal.Update(model);}/// <summary>/// 删除Order表指定ID的记录/// </summary>/// <param name="id">表ID</param>/// <returns>成功:true,失败:false</returns>public bool Delete(int id){//业务点1//业务点2return orderDal.Delete(id);}}}