Websharp 介绍孙亚民Part I 简介一个项目的三个工程 系统框架工程——纯技术 业务工程 测试工程软件设计的目标 稳定 可维护 可扩展 可升级 有利于团队开发设计的原则 高内聚和低耦合 内聚和耦合,包含了横向和纵向 横向的内聚和耦合,通常体现在系统的各个模块、类之间的关系 纵向的耦合,体现在系统的各个层次之间的关系 评判标准 系统的内聚和耦合度 层次的清晰和简洁性 易于实现性 可升级和可扩充性 开发效率 是否有利于团队合作开发 性能Websharp 的关注点 典型的三层应用系统 数据库层 用户界面层 应用服务层 应用服务数据库用户界面应用服务层的设计对于应用服务层来说,需要处理以下几个方面的问题: 数据的表示方式数据,是软件处理的对象。从某种程度上来说,“软件,就是数据结构加算法”的说法,是有一定意义的。在面向对象的系统中,数据是用类来表示的,代表了现实世界实体对象在软件系统中的抽象。考虑所谓的MVC 模式,这个部分的类属于 M—— 实体类的范畴。由于应用软件通常会使用数据库,数据库中的数据,可以看成是对象的持久化保存。由于数据库一般是关系型的,因此,这个部分,还需要考虑类同关系型数据的映射,即通常所说的 O-R MAP 问题。数据的存取方式如同上述所说,软件系统处理的实体对象数据需要持久化保存数据库中,因此,我们必须处理系统同数据库的交互,以及数据的存取和转换方式的问题。业务逻辑的组织方式在面向对象的系统中,业务逻辑表现为对象之间的交互。有了上述的实体对象,以及对象的保存策略,就可以将这些对象组合起来,编写我们的业务逻辑处理程序。在业务逻辑的处理中,必须保证处理的正确性和完整性,这将会涉及到事务处理。通常,我们也会把业务逻辑封装成组件的形式,以得到最大的可重用性。 应用服务层的设计 业务服务的提供方式在我们完成系统的功能后,如何向客户提供服务,是我们需要考虑的问题。这里的客户,不仅仅是指软件的使用者,也包括调用的界面、其他程序等。例如,在一个基于 Web 的 ASP.Net 或 JSP 系统中,业务逻辑功能的客户便是这些 ASP.Net 页面或 JSP 页面。业务逻辑组件应该通过什么方式,直接的,或间接的,向这些客户提供服务? 层的部署和层间交互对于一个多层的应用软件系统来说,尤其是大型的应用软件系统,通常需要把不同的部分部署在不同的...