C#三层架构

简介: DAL(Data Access Layer),数据访问层。与数据库打交道。访问数据库,对数据表进行Select,Insert,Update,Delete操作,并且将处理后的数据保存到数据库

最近进入了三层的学习,刚开始实在是不明白三层是什么?为什么要分层?


三层有哪些?


1.UI(View),表示层。接收显示数据(接受用户输入数据、显示处理后的数据);


2.BLL(Business Logic Layer),业务逻辑层。数据处理和传递,如:逻辑判断、计算


3.DAL(Data Access Layer),数据访问层。与数据库打交道。访问数据库,对数据表进行Select,Insert,Update,Delete操作,并且将处理后的数据保存到数据库


 11c646fe4f43a4c1daca5f7f61557962.png                                                                                    


为什么要使用三层?(来源于生活)


目的:高内聚,低耦合


耦合性:块间联系,模块间相互联系紧密程度的一种度量。模块间联系越紧密,耦合性越强,模块的独立性越差


内聚性:块内联系,一个模块内各元素(语句之间、程序段之间)联系的越紧密,他的内聚性越高


daa0f4def2cdd7cf2fcf5e8c2305b898.png


1.如果顾客感觉服务不好,就是服务员的问题;


如果顾客觉得这个菜不好吃,馊了,就是厨师的问题;


如果觉得今天菜买的不够新鲜,坏了,就是采购员的问题


2.如果服务员请假或离职了,就找另一个服务员顶替;如果厨师今天请假或离职了,就找其他厨师;如果采购员今天请假或离职了,就找其他的采购员。


各司其职,在其位,谋其政,行其权,尽其责


①、在某一层里面,语句联系越紧密,内聚越高。层与层之间联系越差,耦合性越弱,独立性就越强。


②、开发人员可以只关注整个结构中的其中一层,降低层与层之间的依赖。任何一层发生变化都不会影响另外一层。


③、利于各层逻辑的复用(就像第一次机房里面的模块)


他们是如何关联、联系(UI—>BLL—>DAL)的?


通过变量或实体作为参数来进行传递


 0e7aab558a577493ccadddf12d101f5e.png


在VS中的形式:


93cfb35859a56184dac5a5a623cc668c.png


为什么他们都要引用Model层,有什么作用?


Model:业务数据模型,为了在三层之间传送数据,将三层联系起来,在三层之间传递数据。独立于其他三个层次,不属于任何一个层次


什么情况下需要使用?


需要:当业务复杂到一定程序,当数据存储到相应的数据库或者独立的数据存储介质情况下。业务访问访问脱离业务单独存在,业务脱离UI单独存在,UI只需要呼叫业务访问层就可以实现跟用户的交互。


不需要:简单、没有真正的数据存储层


具体实例请观看我的下一篇博客:三层登录实例_吃豆子的恐龙的博客-CSDN博客


相关文章
|
10月前
|
SQL 存储 数据库连接
C#三十六 三层架构的实现(下)
C#三十六 三层架构的实现(下)
54 0
|
10月前
|
C# 数据库 程序员
C#三十六 三层架构的实现(上)
C#三十六 三层架构的实现
48 0
|
10月前
|
SQL 分布式计算 数据库
C#三十五 三层架构企业应用
C#三十五 三层架构企业应用
51 0
|
3月前
|
开发框架 前端开发 NoSQL
【C#】医学实验室云LIS检验信息系统源码 采用B/S架构
【C#】医学实验室云LIS检验信息系统源码 采用B/S架构
106 1
|
3月前
|
C#
C# 三层级架构问题之 能加载文件或程序集或它的某一个依赖项。系统找不到指定的文件
C# 三层级架构问题之 能加载文件或程序集或它的某一个依赖项。系统找不到指定的文件
66 0
|
SQL 数据库 C#
C#&SQL Server基于三层架构实现增删改查
C#&SQL Server基于三层架构实现增删改查
660 0
C#&SQL Server基于三层架构实现增删改查
|
开发框架 前端开发 NoSQL
基于C#开发 B/S架构的实验室管理系统 云LIS系统(MVC + SQLserver + Redis)
云LIS系统是将各种样本、免疫、临检、放免、及实验用的分析仪器,通过网络管理和传输实验分析过程中全部数据。对每一专业,实现检验申请、样本采集、样本核收、联机检验、质量控制、报告审核到报告发布的全环节的信息化管理平台。
288 0
|
程序员 C# 开发者
C#语法——委托,架构的血液
本篇文章主要介绍委托的应用。委托是大家最常见的语法了,但会用与精通之间的差别是巨大的。一个程序员如果不能精通委托,那么,他永远无法成为高级程序员。所以,让我们把委托刻到血液里吧。这样,你才能称为[Developer]。
3771 0
|
C# 数据库 C++
VS中C#连接SQLite数据库处理器架构“x86”不匹配的问题
原文链接 https://www.cnblogs.com/zhaoliankun/p/9088200.html 我的环境配置:windows 64,VS,SQLite(点击下载),System.Data.SQLite.DLL(点击下载)。
1751 0