浅谈三层架构

来源:互联网 发布:淘宝最低折扣0.7是什么 编辑:程序博客网 时间:2024/06/05 14:50

三层架构分为界面层(UIL),业务逻辑层(BLL),数据访问层(DAL)。

三层架构的思想就是将代码分层,即是一种好的代码风格,也极大的提高了代码的重用率。


界面层(UIL),顾名思义就是界面的表示,显示数据和接收用户输入的数据,它仅仅只显示数据和接收用户输入的数据,只是一个外壳,不能包含任何业务逻辑的处理


数据访问层(DAL),有时候也成为持久层,它主要是负责数据库的访问,可以访问数据库系统。二进制文件,文本文档或XML文档,对于数据库的访问代码全放在数据访问层


而三层架构的核心价值就是业务逻辑层(BLL)了,它处于数据访问层和界面层中间,界面层与数据访问层是一点关系都没有的,而正是有了业务逻辑层后,将DAL和UIL联系了起来,


对于DAL来说,BLL是调用者,调用从数据库等读取的内容;而对于UIL来说,BLL是被调用者,UIL将BLL层从数据库获取的内容应用到界面上

下面我们来看代码

UIL(界面):

 <StackPanel  Orientation="Horizontal">            <StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Left">                <TextBox  Width="200" Height="50" Margin="0,30" x:Name="txtname"/>                <TextBox  Width="200" Height="50" Margin="0,0,0,50" x:Name="txtage"/>                <TextBox  Width="200" Height="50" x:Name="txtheight" />            </StackPanel>            <StackPanel>                <Button  Width="200" Height="50" Content="可空数据录入" FontSize="20" Margin="0,50" Click="Button_Click"/>                         </StackPanel>        </StackPanel>

DAL(读取数据库数据):

 class StudentDAL    {        //和数据库有关的都放在DAL(数据访问层)中        public static object ToDBValue(object value)        {            if (value == null)            {                return  DBNull.Value;            }            else            {                return value;            }        }        public static void Insert(Student student)        {            SqlHelper.ExecuteNonQuery(@"insert into T_DBNULL(Name,Age,Height) values(@name,@age,@height)",new SqlParameter("@name",ToDBValue(student.Name)),new SqlParameter("@age",ToDBValue(student.Age)),new  SqlParameter("@height",student.Height));        }    }


BLL(将读取到的数据显示在界面层上):

 private void Button_Click(object sender, RoutedEventArgs e)        {            Student student = new Student();                    student.Height =decimal.Parse(txtheight.Text);            StudentDAL.Insert(student);        }


三层架构将代码都分离了开,开发人员可以只关注整个结构的其中一层就可以,也可以很容易的用新的实现来替换原有的实现,可以简单的代码改动就可以摇身一变为另一个app,极大的提高了代码复用率,后期的维护工作也很方便。目前可能小项目中还体现的不明显,但是我相信在往后越来越大的项目中,三层架构还是很有优势的。

0 0
原创粉丝点击