七层有什么?
1、UI层:主要职责是为用户提供信息,以及把用户的指令进行翻译。接收用户传来的数据,传给外观层,再由外观层传给B层进行相应的判断。
2、facade层:解耦U层和B层,这样便减弱了两个类之间的关联,提高了代码的可维护性,这样无论U层和F层进行什么改变只需要去外观层进行相应的改动便可。
3、BLL层:主要负责一些的业务逻辑判断和处理,接收通过工厂和接口传来的数据,将数据传给D层。
4、factory层:通过配置文件来选取相应的数据库,创建相应的数据库接口,解耦了数据库的类型。
5、IDAL层:D层通过创建的接口来输送B层所需要的数据,B层获取数据也要通过这个接口。接口是定义一个方法名,为了 让D层去实现,接口的存在很好的做到了解耦,在B层就只需要声明一个接口,具体实现的过程不需要知道。
6、DAL层:该层所做事物直接操作数据库,针对数据的增添,删改、查找。无需做什么逻辑判断,只是和数据库直接交互。
7、Enitity实体层:封装数据,用以传输。
注:红色加粗部分是之前的三层架构
为什么要引用七层?
减少各层之间的数据耦合,便于后期维护
七层之间的关系
七层之间的引用关系
U层:Facade层和Entity层
Facade层:BLL层和Entity层
BLL层:Factory层和IDAl层和Entity层‘
Factory层:IDAL层
IDAL层:Entity层
DAL层:实现IDAL并引用Entity层
下面就来看一下具体的流程,如何实现登录这个功能
首先声明一下:整个项目除了UI层是windows窗体,其他层都属于类
具体代码如下:
UI层
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Facade;
using Entity;
namespace UI1
{
public partial class LoginUI : Form
{
public LoginUI()
{