什么是七层
七层就是三层的扩充,分层简化了系统,降低了耦合度,明确了各层的功能。
UI层:(User Interface)表示层:位于最外层(最上层),最接近用户。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。
Facade 外观层:外观模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层的接口,这个接口使得这一子系统更加容易使用。
BLL(Business Logic Layer)业务逻辑层:主要负责对数据层的操作,也就是说把一些数据层的操作进行组合。
对数据业务逻辑处理。
就是逻辑判断、处理。
IDAL 接口层:IDAL是DAL层的类要实现的接口,它体现了”抽象”的精神,或者说是”面向接口编程”的最佳体现。对数据访问层的方法进行抽象,是调用数据访问层方法的接口,提高系统的可维护性。
DAL (Data Access Layer)数据访问层:主要是数据库或者文本文件等存放数据的形式的操作层,对数据库的操作,具体为业务逻辑层或表示层提供数据服务。
Factory 工厂层:用于创建接口对象,是业务逻辑层与接口层的桥梁,对二者进行解耦和。
Entity (Entity Class)实体类:实现了对数据的封装。数据库中每个表都对应一个实体类,表的字段就是实体类的属性。
包图
实现步骤
1、创建Entity,实现业务实体。
2、创建IDAL,实现接口。
3、创建DAL,实现接口里的方法。
4、增加APP.config里的配置信息,为提供DAL的程序集。
5、创建Factory,返回程序集的指定类的实例。
6、创建BLL,调用Factory,得到程序集指定类的实例,完成数据操作方法。
7、创建Facade,调用BLL,得到BLL层的处理结果返回值。
8、创建UI,调用Facade里的数据操作方法,实现登录。
代码实现
BLL
namespace BLL
{
public class LoginBLL
{
public DataTable UserBLL(Entity.UserEntity UserInfo )
{
Factory.LoginFactory fact = new Factory.LoginFactory(); //实例化工厂
IDAL.LoginIDAL idal = fact.CreateUser();//调用工厂方法创建接口
DataTable table = idal.SelectUser(UserInfo);//接受D层的返回值
if (table .Rows .Count >0)
{
Entity.UserEntity LoginInfo = new Entity.UserEntity();
//读出登录信息
LoginInfo.UserID = table.Rows[0]["UserID "].ToString();
LoginInfo.PWD = table.Rows[0]["PassWord"].ToString();
}
else
{
throw new Exception("无相关信息");
}
return table;
}
}
}
DAL
namespace DAL
{
class LoginDAL :IDAL.LoginIDAL
{
public DataTable SelectUser(UserEntity UserInfo)
{
SQLHelper SqlHelper = new SQLHelper();
SqlParameter[] SqlParams = {
new SqlParameter("@UserID", UserInfo.UserID), new SqlParameter("@PassWord", UserInfo.PWD) }<