导读:三层的学习,也终于得到收获了。这个过程很艰辛,不止一次的想放弃。在这一个学习过程中,真的很感谢师傅的尽心、耐心、费心。其实真的很脆弱,现在回想起来都很不可思议。
一、基本概况
1,什么是三层
我们时常讨论的三层,指的是U层(User Iterface),也叫用户层、显示层;B层(Business Logic Layer),业务逻辑层;D层(Data Access Layer),数据访问层。
2,使用时机
不适用:业务逻辑简单,没有真正意义上的数据存储层
适用:业务逻辑复杂;数据存储到独立的介质。
注意:不是所有的系统都需要三层架构,不应为了分层而分层,从而增加开发负担。
3,各层的作用
U:向用户展现特定业务数据;采集用户的输入信息和操作。
B:从D层中获取数据,供U层显示用;从U层获取用户指令和数据,执行业务逻辑,并通过D层写入数据源。
D:从数据源加载数据(Select);向数据源写入数据(Insert、Update);从数据源删除数据(Delete)
4,基本原则
D:D层只提供基本的数据访问,不包含任何业务相关的逻辑处理;
U:只负责显示和采集用户操作,不包含任何的业务相关的逻辑处理;(界面设计:用户至上,兼顾简洁)
B:负责处理业务逻辑,同过获取U层传来的操作指令,决定执行业务逻辑,在需要访问数据源的时候直接交给D层处理,将处理结果返给U层。
5,引用关系
UI——BLL——DAL
说明:D层所在程序集不引用B层和U层;B层需要引用D层;U层直接引用B层,可能会间接引用D层。
二、具体实例(添加用户)
U层
B层
D层
注:SqlHelper是一个封装数据库操作的类。
Model
三、分层的优点
主要优点:解耦和,易于维护和合作(层与层之间分工明确)。
四、个人感受学习三层真的挺痛苦的,不过熬过去了也就过去了。三层虽好,但也不能到处乱使,还得根据情况集体分析。
其次,在这个过程中,又发现了自己的一个大问题:我喜欢自己磨,我要磨个一两天,甚至的三四天,我要磨到我实在找不出方法来了,我才会去找别人交流。师傅说我这样费事儿,要多去和别人交流,可是我发现我改不过来,我也知道自己磨不好,但如果还有方法没有尝试过,我就是不愿意去找别人要一个答案。尽管师傅说我费事儿,但我发现我还是挺享受这个痛苦又甜蜜的过程的。不过,我以后会改。