机房重构之--七层架构

Posted 「已注销」

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机房重构之--七层架构相关的知识,希望对你有一定的参考价值。

  经过软件工程的洗礼,秉承着软件“高内聚、低耦合”的开发原则,对机房系统设计要尽量达到解耦、易维护、易扩展的目的,对系统结构设计为如下七层:


  分这么多层是实现软件灵活性的必须要求,但是这些层的作用都是什么呢?

  (1)UI(User Interface):表示层,负责与用户进行交互,显示、接受数据,也做一些简单逻辑处理,如:输入数据有效性判断、显示各种异常、处理Dataset(内存中虚拟数据库)记录集数据。只与外观层(Façade)、实体类(Entity Class)两个项目发生关联。

  (2)Façade:外观层,负责整合业务逻辑层的方法,为一些有共性的方法提供统一的接口,以供UI层调用。只与业务逻辑层(BLL)、实体类(Entity Class)有关联关系。

  (3)BLL(Business Logic Layer):业务逻辑层,业务逻辑层是系统的核心,它承担了所有的逻辑判断,实现了程序的功能,它是灵活的。B层既是调用者,又是被调用者,因此,要适当的进行设计达到解耦的效果。虽然B层被Facade层调用,但是B层不用去了解U层的情况。程序每一个功能在B层都对应一个类。只与工厂(Factory)、接口层(IDAL)、实体类(Entity)有关联关系。

  (4)IDAL:接口层,对数据访问层的方法进行抽象,是调用数据访问层方法的接口,提高了系统的可扩展、可维护性,更换数据库等操作更加方便。只与实体类(Entity)有关联关系。

  (5)DAL(Data Access Layer):数据访问层,提供数据访问的方法,不储存逻辑。在接口中对数据库操作语句进行组合装配。数据访问层是数据库的管理者,但不是访问者,不直接与数据库发生关联。数据库中每个表都对应一个数据访问层的 (访问控制)类。在数据访问层中有SQLHelper类,专用于存放公用的访问数据库方法以让其他访问控制类调用,实现代码复用。数据访问层只与接口层(IDAL)、实体类(Entity)有关联关系。

  (6)Factory:工厂层,用于创建接口对象,是业务逻辑层与接口层的桥梁,对二者进行解耦合。Factory就是是设计模式中的简单工厂模式(请猛点这里)中的简单工厂了,专门用于创建接口。工厂层只与接口层(IDAL)有关联关系。

  (7)Model:Model层中保存的都是实体类(Entity Class)相当于加强的数据结构,实现了对数据的封装。数据库中每个表都对应一个实体类,表的字段就是实体类的属性,类型一一对应。UI、BLL、DLL三层的交互主要就是通过实体类作为参数,并返回信息。实体类不与任何层发生关联关系。

  小结:虽然层数比较多,但它只是将单独的功能分了出来,形成了新的模块,并没有额外添加多余的功能,所以,分层应该是简化了系统,而不是复杂化了系统,就好比,原先大家都在一块做饭、洗衣服,现在分出来了,洗衣服的分配洗衣房,做饭的分配厨房,功能明确了,耦合度降低了。


以上是关于机房重构之--七层架构的主要内容,如果未能解决你的问题,请参考以下文章

设计模式——外观模式

机房收费系统重构—登陆窗口完整版

重构——七层登录

机房收费系统重构初期问题总结

机房重构—上机&订餐

C#机房重构——报表制作