C# 三层与七层理解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Tink_bell/article/details/80212866

1、三层架构:

  UI:显示界面
  BLL:处理业务逻辑,调用DAL处理数据,返回信息给UI。
  DAL:与具体的数据库打交道,提供访问数据库的方法。
这里写图片描述
三层,每层我们赋予它们的职责,分别是:
  UI:提供给用户良好的界面体验,完成数据输入与输出的展示。
  BLL:处理繁琐的一系列的逻辑,实现从U层到D层的数据传输,并在一定程度上解耦,解除客户端与数据库的耦合。
  DAL:完成对具体的某一数据库实现交互。

2、七层架构:

看一下抽象工厂的七层包图:
这里写图片描述
(画图的具体细节可能不是很正确,UML学的不是很深。。。)

每层的具体职责:
  UI:显示界面与信息。
  Facade:外观模式,调用BLL的方法,解除UI与BLL之间的耦合。
  BLL:业务逻辑,处理逻辑代码,声明抽象工厂与D层抽象类,工厂决定了实例化哪个具体对象,抽象类调用访问方法,充分体现了依赖倒转原则,实现依赖于抽象。
  Factory:抽象工厂类,声明实现方法,让子类去重写,利用反射技术。
  ConcertFactory:具体工厂类,决定去实例化哪个具体的对象,实现反射技术。
  IDAL:数据访问接口类,定义抽象,声明实现方法,让子类去实现。
  DAL:具体的访问对象类,提供访问数据库的方法,重写父类的抽象方法。

3、总结:

  不管是三层还是七层,最关键的是BLL层了,它里面主要的功能,实例化具体工厂,返回给抽象访问接口IDAL,原理就是工厂模式的将实例化延迟到其子类,通俗的来说,就是抽象工厂的子类去实例化了另一个抽象类的子类对象;之后,调用抽象类的方法,此时抽象类的方法已经被子类替换了(里氏替换)。
  可以对比一下,三层也是有实体和SQLHelper,在上面没有体现出来。其实实体是辅助我们存储一些数据库的临时数据,而SQLHelper是我们写好的一些访问数据库的方法,因为访问数据库几乎所有的功能都需要,因为我们把它单独拿出来,形成一个模块,需要时,声明并调用它具体的某个方法即可,大大减少了代码量,所以说它的本质是把DAL访问数据库的操作步骤拿出来形成了一个模块而已。
  深刻理解七层,就会被它的魅力深深的吸引。

猜你喜欢

转载自blog.csdn.net/Tink_bell/article/details/80212866