企业级应用框架:三层架构之解耦

前言

前段时间朋友拿了个网站给我,让我帮忙添加几个小功能,我爽快的答应了,但是当我打开源码,我瞬间就奔溃了,整个项目连最基本的三层框架也没有搭建,仅仅是封装了一个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
            //业务点2
            return 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
            //业务点2
            return orderDal.Delete(id);
        }
    }
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索using
, 前段框架
, 解耦
, system
, public
, 三层架构 ent
, order
, #三层架构
, 三层架构引用
, 三层架构
, 业务
, 实体
表架构
,以便于您获取更多的相关知识。

时间: 2025-01-17 17:42:50

企业级应用框架:三层架构之解耦的相关文章

利用General框架进行三层架构开发

三层架构是企业信息管理系统中一种比较流行的架构方式,如大家所知,三层架构将信息系统分为数据访问层(DAL).业务逻辑层(BLL).界面表示层(UI)三部分,三层架构的好处是根据系统中代码所处的层次将系统拆开,而通过业务模型(Model)再进行连接,降低系统各层次之间的耦合度,提升程序开发和后期维护的容易度. 由 于三层架构是根据由上至下的层次进行分层,而不是根据功能.应用领域进行分层,所以三层架构在每一层的关注点并不相同,数据访问层关注的是跟数据库打交道 的部分,业务逻辑层关注的是业务逻辑处理部

从零开始编写自己的C#框架(5)——三层架构介绍

原文:从零开始编写自己的C#框架(5)--三层架构介绍 三层架构对于开发人员来说,已经是司空见惯了,除了大型与超小型项目外,大多都是这种架构来进行开发.   在这里为初学者们简单介绍一下三层架构: (下面内容摘自<趣味理解:三层架构与养猪-<.NET深入体验与实战精要>>,这是以前看到的关于三层架构介绍,觉得挺经典的,大家有时间的话认真看看) 对比以上两图,我们可以看出: 1)数据库好比猪圈 ,所有的猪有序地按区域或编号,存放在不同的猪栏里. 2)DAL 好比是屠宰场 ,把猪从猪圈

ssi框架学习总结(mvc三层架构)_JSP编程

相信大家对于mvc的三层架构已经灰常熟悉了,在这就不细讲了,个人感觉ssi的框架结构还是比较典型的mvc三层架构,还是比较容易上手的.关于这块的入门我想特别感谢下FrankHui童鞋,在他的帮助下,我才能比较快滴熟悉了这个架构,对我学习ssi的框架还是很有帮助滴.ssi的框架主要是由struts2,spring以及ibatis组成,他们负责各层之间的交互与协作,从而实现整个web端的功能实现与整合.Struts目前主要负责数据传递和控制方面,spring则依靠其强大的依赖注入技术实现了类似bea

ASP.NET 三层架构使用IDAL 接口层有什么作用,有和妙用,使用业务逻辑层BLL直接调用数据层DAL不可以嘛。

问题描述 我们通常是UIweb层调用BLL层,BLL层调用DAL达到数据的交换.但是看到大多数项目是有个IDAL接口,只是声明方法没有任何的代码实现部分,代码实现部分都放在了DAL层,然后BLL层去调用IDAL接口层的方法实现,并没有去调用DAL层,UI层调用BLL层,这里的接口层有和作用,请教各位帮忙解答,不胜感激! 解决方案 解决方案二:IDAL是DAL层的类要实现的接口.DAL层的各类需要完成对数据库的访问,但是不同的数据库需要使用不同的DAL对象,这样对于BLL层来说无法实现数据库无关性

《CCNP SWITCH (642-813 )学习指南》一1.1 复杂的企业网络框架、架构和模型

1.1 复杂的企业网络框架.架构和模型 CCNP ROUTE (642-902)学习指南 本节介绍融合网络(converged network)及其中的各种数据流.为满足这种网络的需求,Cisco制定了智能信息网(Intelligent Information Network,IIN)策略,并开发了面向服务的网络架构(Service-Oriented Network Architecture,SONA)以引导企业网转向IIN.本节将介绍这两个主题. 本节还将概述Cisco企业级架构,并介绍传统的

如何在ASP.NET中使用三层架构

  学ASP.NET都知道它的最经典的架构是三层架构,也是目前应用得最广泛的一种架构.以前说起三层架构大家都知道MVC架构,这是html开发中用得比较多的,现在AJAX主要就是用这种架构.大家ASP.NET的三层是指数据访问层,业务逻辑层和表示层,而且都知道数据访问层是用来访问数据的,业务逻辑层是用来处理一些系统的业务逻辑的,表示层就是把内容呈现出来给用户,与用户进行交互的.划分三层的好处就是每一层都是独立的,修改其中一层一般不会影响其他层的代码,这样就大大的方便了日后的维护和升级.它最大的缺点

三层架构的学习

为什么要使用三层架构 对于一个简单的应用程序来说,代码量不是很多的情况下,一层结构或二层结构开发完全够用,没有必要将其复杂化,如果对一个复杂的大型系统,设计为一层结构或二层结构开发,那么这样的设计存在很严重缺陷.下面会具体介绍,分层开发其实是为大型系统服务的.在开发过程中,初级程序人员出现相似的功能经常复制代码,那么同样的代码写那么多次,不但使程序变得冗长,更不利于维护,一个小小的修改或许会涉及很多页面,经常导致异常的产生使程序不能正常运行.最主要的面向对象的思想没有得到丝毫的体现,打着面向对象

ASP 三层架构 Error处理类_应用技巧

从这节开始,将会给大家介绍几个ASP中的三大通用类,它贯穿于我所设计的三层架构中,是对ASP语法的扩展,可以提高很多细节处理上的效率,可以算是一点点框架的味道. 本节介绍错误处理类,类名Con_Error,在代码页面之初就进行初始化,实例名为e,以下的e.add 即使用该错误类的实例化对象进行操作. 方法介绍: e.Add(ByVal vErrorMessage ) 记录一个错误,并且设置 e.Error = true . 在程序检测用户名合法性等地方发现错误时,就调用这个方法,记录一个错误信息

三层架构详解(服务员-厨师-采购员)

三层架构详解 1,什么是三层? 2,为什么使用三层? 3,三层与以往使用的两层相比有什么不同?它的优势在哪里? 4,如何学好三层?如何应用三层? -- 对于三层我左思右想,如何与实际相联系.好嘛,昨晚突然有了"灵感".还记得大话设计模式里第23章大鸟和小菜吃羊肉串的故事--由在小摊吃到饭店吃引来的一个命令模式(当然今天不是研究命令模式).服务员.厨师.采购员. 这不就是个典型的三层架构吗???(⊙ o ⊙ )啊!哈哈(这个后面再做解释)     先了解:   1,什么是三层? UI(表