机房重构——聊聊七层

首先是这张经典的图片:

实现步骤:
1、创建Entity,实现业务实体。
2、创建IDAL,实现接口。
3、创建DAL,实现接口里的方法。
4、增加APP.config里的配置信息,为提供DAL的程序集。
5、创建Factory,返回程序集的指定类的实例。
6、创建BLL,调用Factory,得到程序集指定类的实例,完成数据操作方法。
7、创建Facade,调用BLL,得到BLL层的处理结果返回值。
8、创建UI,调用Facade里的数据操作方法,实现登录。
除第一步外,在敲代码过程中我觉得可以倒过来顺序来写代码,这样也很方便。

根据各层箭头指向得出各层间的引用关系:
这里写图片描述

UI层:(User Interface)表示层:位于最外层(最上层),最接近用户。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。
泛指用户操作的界面,负责与用户进行交互、显示、接收数据,做一些简单的逻辑处理。
所有显示的内容都在UI层显示。

Facade 外观层:外观模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层的接口,这个接口使得这一子系统更加容易使用。


由这张图就可以明白为什么要用外观模式了;表示层和业务逻辑层层与层间联系复杂,利用外观模式从而给复杂系统提供一个简单的接口,使得耦合大大降低。

BLL(Business Logic Layer)业务逻辑层:主要负责对数据层的操作,也就是说把一些数据层的操作进行组合。
对数据业务逻辑处理。
就是逻辑判断、处理。

IDAL 接口层:IDAL是DAL层的类要实现的接口,它体现了”抽象”的精神,或者说是”面向接口编程”的最佳体现。对数据访问层的方法进行抽象,是调用数据访问层方法的接口,提高系统的可维护性。

DAL (Data Access Layer)数据访问层:主要是数据库或者文本文件等存放数据的形式的操作层,对数据库的操作,具体为业务逻辑层或表示层提供数据服务。

Factory 工厂层:用于创建接口对象,是业务逻辑层与接口层的桥梁,对二者进行解耦和。

Entity (Entity Class)实体类:实现了对数据的封装。数据库中每个表都对应一个实体类,表的字段就是实体类的属性。

七层就是三层的扩充,分层简化了系统,降低了耦合度,明确了各层的功能。


为什么要分层?

1)开发人员可以只关注整个结构中的其中某一层;
2)就是解耦和了,降低层与层之间的依赖;
3)利于标准化,有了标准后更容易提高效率;
4)利于各层逻辑的复用,这个举个例子:UI层可重复利用Facade层的方法;
5)可以很容易用新的实现来替换原有层次的实现;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 28
    评论
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值