机房重构之--七层架构
2015-11-09 08:03
543 查看
经过软件工程的洗礼,秉承着软件“高内聚、低耦合”的开发原则,对机房系统设计要尽量达到解耦、易维护、易扩展的目的,对系统结构设计为如下七层:
分这么多层是实现软件灵活性的必须要求,但是这些层的作用都是什么呢?
(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三层的交互主要就是通过实体类作为参数,并返回信息。实体类不与任何层发生关联关系。
小结:虽然层数比较多,但它只是将单独的功能分了出来,形成了新的模块,并没有额外添加多余的功能,所以,分层应该是简化了系统,而不是复杂化了系统,就好比,原先大家都在一块做饭、洗衣服,现在分出来了,洗衣服的分配洗衣房,做饭的分配厨房,功能明确了,耦合度降低了。
分这么多层是实现软件灵活性的必须要求,但是这些层的作用都是什么呢?
(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三层的交互主要就是通过实体类作为参数,并返回信息。实体类不与任何层发生关联关系。
小结:虽然层数比较多,但它只是将单独的功能分了出来,形成了新的模块,并没有额外添加多余的功能,所以,分层应该是简化了系统,而不是复杂化了系统,就好比,原先大家都在一块做饭、洗衣服,现在分出来了,洗衣服的分配洗衣房,做饭的分配厨房,功能明确了,耦合度降低了。
相关文章推荐
- 权重6老站SEO诊断,我的网站突破口在哪里?
- 你经常访问那些安卓网站?附 几百个技巧大全网址,电纸书网站,查开房隐私泄露网址等
- 一些免费的WebService的服务网站
- android rom 网站
- 【转】网站建设整体设计思路
- 【转】企业网站建设方法论
- 【转】中小型企业网站设计思路及要点
- [转]企业网站首页设计常见的6种布局方式
- 门户级UGC系统的技术进化路线——新浪新闻评论系统的架构演进和经验总结
- js获取网站绝对路径
- Zabbix自定义监控网站服务是否能够正常响应
- Zabbix自定义监控网站服务是否能够正常响应
- 【Android架构Telephony篇】之数据业务(二)
- XAMPP-1.8.3上将mediawiki-1.23.3升级到1.25.3遇到的问题
- 从三层架构到MVC,MVP
- 《高性能网站建设指南》
- [笔记-架构探险]框架优化与功能扩展3.1.优化Action参数、提供文件上传功能、与ServletApi解耦.
- 4000 各种元素水平垂直居中
- 一般网站架构演化
- 09-网站标题图片设置