软件的架构与设计模式之Layers模式

软件的架构与设计模式之Layers模式,第1张

软件的架构与设计模式之Layers模式,第2张

建筑学的设计原则也应当成为软件系统设计的指导原则。
  第一种情况

  这也就是最为熟知的情况。客户端向第N层发出请求,而第N层不能独立完成请求,需要调用第N-1层所提供的服务,第N-1层同样需要他的下级,也就是N-2层所提供的服务。如此往复,直到第2层和第1层。

  第1层可以独立完成自己的任务,它将执行的结果返还给第2层。第2层得到第1层的结果之后,便能够继续完成自己的任务了,它会把执行的结果继续向上,也就是第3层传递。如此反复,一直到第N-1层和第N层。

  图12、在有N个层次的架构中,请求(Request)沿着层次自上向下传递,结果(Result)自下向上传递。

  系统的客户端只知道第N层,它向第N层发出请求,并且从第N层接到结果,客户端并不知道其他层次的存在。参见下图。

  图13、客户端只知道第N层,而不知道其他层次。

  第二种情况

  这第二种情况代表了自下至上的通讯,称为通知(Notification)。这一系列的行为开始于第1层,这一层通过处理后,将通知向上传给第2层,继续向上传递到第3层,一直到第N-1层和第N层为止。参见下图。

  图14、在有N个层次的架构中,Notification沿着层次自下向上传递。

  使用过USB设备的读者知道,一旦把USB设备插入到计算机中的时候,USB驱动软件立刻就会发现设备被激活,并通知设备的设备操作软件,设备操作软件便会启动。这一系列的行为就是Notification自下向上传递的过程。

  在第一种情况中,请求首先向下传递,然后结果逆向传递,形成一个环形。在第二种情况中,Notification的传递是单向的。

  第三种情况

  这一种情况与第一种情况相似,只是仅涉及到一部分的层次而已。

  首先客户端向第N层发出请求,而第N层不能独立完成请求,需要调用第N-1层所提供的服务,第N-1层同样需要他的下级,也就是N-2层所提供的服务。如此往复,直到第J层为止。

  第J层可以独立完成自己的任务,而不再需要J-1层。它将执行的结果返还给第J+1层。第J+1层得到第J层的结果之后,便能够继续完成自己的任务了,它会把执行的结果继续向上,也就是第J+2层传递。如此反复,一直到第N-1层和第N层。参见下图。

  图15、在有N个层次的架构中,Request向上传递到某个中间层次就停止了,Result从那里向下传递。

  同样,客户端只知道第N层,而不知道其他层次的存在。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 软件的架构与设计模式之Layers模式

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情