下面这张图展示了各层之间的关系:
中间传送的数据是实体层里面的Userinfo,一层一层传到sqlHelper,在一层一层判断传到U层,如上图所示
LoginUI(显示层---登陆界面) | 1.实例化实体层 2.实例化外观层 |
LoginEntity(实体层) | 1.Userinfo类有两个属性(UserName和Password) |
LoginFacade(外观层) | 1.实例化业务逻辑层(BLL层) 2.返回值返回U层 |
LoginBLL(业务逻辑层) | 1.实例化工厂层(Factory) 2.接口类(LoginIDAL)接收返回值 3.数据表(DataTable)接收返回值 4.返回值返回外观层 |
LoginFactory(工厂层) | 1.赋值配置文件信息 2.反射,实例化DAL层和DAL层中的类,强制转换为IDAL(接口)类 |
LoginIDAL(接口层) | 1.各类接口 |
LoginDAL(数据访问层) | 1.实例化数据库类(sqlHelper) 2.将用户输入的数据传入数据库类 3.返回B层 |
sqlHelper | 1.数据库的链接 2.数据库的操作,如增删改查 3.返回D层 |
LoginUI(显示层---登陆界面) | 1.判断用户输入是否为空 2.判断是否显示窗体 |
LoginBLL(业务逻辑层) | 1.判断(DataTable)表中是有数据,根据数据库查询 |
sqlHelper | 1.判断数据库是否链接 |
一、实体层(Entity):实体层,存放全局的实体类,方便各个层之前的参数调用。
二、外观层(Facade):这里用到了外观模式,使得复杂问题简单化,用外观模式定义系统中每一层的入口,层与层之间不直接产生联系,而通过外观类建立联系,降低层之间的耦合度。
三、工厂层(Factory):工厂来创建接口,返回接口,用到了抽象工厂+反射+配置文件,作用是灵活的实现数据库的连接,方便换数据库,进一步解耦合。
四、接口层(IDAL):接口层用来定义一个统一的接口,解除B层和D层的耦合。