【学习】Web应用程序分层设计的要点浅析

来源:互联网 发布:求质数的算法 编辑:程序博客网 时间:2024/06/04 18:22


自上而下的设计方式:
  • 表现层
  1. 分离UI组件与表现的逻辑,UI组件最好使用标准的HTML控件。
  2. 对于Web应用程序来说,一般由服务端控件与客户端控件组成。通常,所有的表现逻辑都存在于服务端控件中,客户端控件仅仅是显示为HTML页面。
  3. 如果采用了基于ajax的客户端技术,就可以把表现逻辑放在客户端来实现,这样也可以提高用户体验。在这种情况下,即便是客户端做了各种数据操作的验证,在提交到服务端后,还要重新进行验证,因为所有的客户端验证都很可能会被轻而易举地恶意地改写、被规避掉。

  • 服务层
  1. 设计分离的服务层,一方面可以分布式部署业务层,另一方面可以发布为Web服务。
  2. 如果要修改服务层的接口,那么尽量不要修改原有的接口,不然这样很可能会破坏已经使用它们的客户端的行为。取而代之,可以在服务层设计新版本的接口,让需要的客户端来连接。
  3. 如果业务层是分布式结构,那么应该尽量减少对服务层的请求(通信来往)次数,比如把多次细微的请求(增删改操作各请求一次)替换成一次较大的请求。
  4. 保证多次同样的请求只会被处理一次,还要保证不同顺序的请求能够得到对应的处理(我不知道这里该怎么去设计。。。)

  • 业务层
主要有业务逻辑,工作流控制,业务实体三类模块。
  1. 分离业务逻辑与工作流控制,将会有效地提升可维护性及可测试性,并且可以让开发员集中管理并重用通用的业务逻辑。
  2. 用现实世界的事物表达业务实体,并在组件间传递它们。
  3. 把业务层设计为无状态形式,这将有助于降低资源的消耗、提高性能。并且可以考虑使用基于消息的接口。
  4. 如果在业务层中要进行很重要的业务操作,那么,使用事务以维持完整性,并可阻止丢失数据。

  • 数据层
  1. 使用分离的数据层,有助于程序可以相对容易地配置与维护,并对其它层隐藏了数据库的细节,让其它层更专注于自己的设计与功能。
  2. 设计数据实体对象,以便数据层本身可以生成并更新数据源。
  3. 设计数据传输对象(DTO),这样可以在与其它层进行交互并传递数据。
  4. 利用连接池的优势,减少开放着的连接的个数。
  5. 考虑使用批处理(比如存储过程)以减少对数据库的请求(通信来往)次数。
原创粉丝点击