浅谈三层架构
来源:互联网 发布:淘宝最低折扣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)); } }
private void Button_Click(object sender, RoutedEventArgs e) { Student student = new Student(); student.Height =decimal.Parse(txtheight.Text); StudentDAL.Insert(student); }
三层架构将代码都分离了开,开发人员可以只关注整个结构的其中一层就可以,也可以很容易的用新的实现来替换原有的实现,可以简单的代码改动就可以摇身一变为另一个app,极大的提高了代码复用率,后期的维护工作也很方便。目前可能小项目中还体现的不明显,但是我相信在往后越来越大的项目中,三层架构还是很有优势的。
0 0
- 浅谈.NET三层架构
- 浅谈三层架构
- 浅谈三层架构
- 浅谈 三层架构
- 浅谈三层架构
- 浅谈三层架构
- 浅谈三层架构
- 浅谈“三层架构”
- 浅谈三层架构
- 浅谈三层架构
- 浅谈三层架构
- 浅谈三层架构
- 浅谈三层架构
- 浅谈三层架构
- 浅谈三层架构
- 浅谈MVC三层架构
- 浅谈.NET三层架构-转载
- 浅谈三层架构(1)
- LeetCode -- 3Sum Closest
- hpuoj 1715: 感恩节KK专场——2015年的第一场雪 (暴力)
- stm32 实现串口中断接收浮点型、整型数据
- java基础之正则及面向对象
- volley解惑
- 浅谈三层架构
- LeetCode -- 4Sum
- iOS中的开发模式
- 启动其他应用
- 复选框与单选按钮
- 【C++ MFC开发】串口通信之多个编辑框输出
- opencv计算图像的水平投影和垂直投影
- LeetCode -- Binary Tree Level Order Traversal II
- 禅修程序员十诫