服务层可以看做是表现层结束、业务层开始的一个便捷,服务层用来尽可能地降低表现层和业务逻辑之间的耦合,让表现层无需关注业务逻辑层中的具体实现组织方式


1. 服务层究竟是什么?
  1)服务层:

    
  2)面向服务是一种设计业务流程的方式,由一系列互相连接的服务组成,面向服务并不是某种特定的技术,而更像是一种不同的组织业务操作的方式


2. 实战:
  1)何时使用服务层:若有多个前端且应用逻辑较为复杂,推荐提供一套公用的API:

    
  2)服务层优势:
    实现一个粗粒度的远程接口,降低表现层与业务层之间的通信流量;
    若通过服务来实现,方便让该层在远程执行或通过配置修改绑定设置
  3)服务层劣势:
    若系统较简单,则有过度设计设计之嫌
  4)服务层的位置:根据具体情况分析
  5)设计实现服务层类:
    服务层中的类应该暴露出契约(实现接口)
    处理角色和安全


3. 相关模式:
  远程门面模式
  数据迁移对象(DTO)模式
  适配器模式


4. 面向服务架构:
  SOA原则:边界清晰、服务自治、使用契约,而不是类(基于消息的语义,如通过交换xml串)、兼容性基于策略
  SOA实用规则:

    


5. 富web前端特例:
  为了用户认证,增加Ajax服务层(用户与检查cookie,然后再执行逻辑):