前言
说实话,其实敲到最后,才大概了解代码到底应该怎么敲,7层的作用到底是什么,继承、封装、抽象也都不是口头上说说,大致上理解理解,更多的还是需要去实践啊!
7层
UI层:接受用户的数据,呈现用户所需要的数据,并且进行一些简单的业务处理,例如判断数据输入的有效性、显示各种异常。调用facade层和entity层。每个判断最好都加一个try-catch。
facade层:负责整合B层的方法,为一些有共性的方法提供统一的接口,以供UI层调用。调用BLL层和entity层。
BLL层:承担了所有的逻辑判断,系统功能的实现主要就是靠它。调用factory层、IDAL层、entity层。程序每一个功能在此都对应一个类。
factory层:用于创建接口对象,是B层和IDAL层的桥梁,对二者进行解耦合。调用IDAL层。
IDAL层:对D层进行抽象,是调用数据访问层方法的接口,提高了系统的扩展性、可维护性、更换数据库提供方便。调用实体层。
DAL层:提供数据访问的方法,不存储逻辑。在接口中对数据库操作语句进行组合装配。数据访问层是数据库的管理者,但不是访问者,不直接与数据库发生关联。数据库中每个表对应一个D层的类。在D层中有sqlhelper类,专用于存放公用的访问数据库方法以让其他访问控制类调用,实现代码复用。DAL层被IDAL层调用。
entity层:数据库中每个表都对应一个实体类,表的字段就是实体的属性,类型一一对应。
继承、封装和抽象
1.我们每一层分为增删改查四类,想一想还有没有更好的办法。例如:在D层创建一个增删改查的基类以及IDAL层增删改查的基类接口,基类中涵盖其他类的公共方法,其他类继承这个基类,其他类也有自己的个别之处,所有功能实现都去调用这个接口,这就体现了多态、抽象、继承和封装。
2.一般我们D层都是直接操作的数据库,也就是使用sqlcommand封装sqlhelper,sqlhelper直接操作数据库,但是仔细观察sqlhelper里面的代码,是不是完全的面向过程呢?这个时候我们就可以使用ORM框架,D层不去直接操作数据库,而是直接操作实体,实体层对应数据库,我们完全不用去管里面到底是怎.么操作的,这样面向对象的味道就体现出来了。