软件架构的一本好书

Pattern Oriented Software Architecture

 

Page 39 为Layer pattern的layer指定service:需要遵循的一个重要原则是一个component不可以横跨多个layer, Layer N层使用的函数参数、返回值、错误类型信息等要么是编程语言的built-in 类型, 要么是Layer N层自定义的,要么来自一个多层共享的公共数据定义模块,决不能来自其它层的定义。

处于高层的Layer应该提供更多的service,反之较低层次的Layer要提供较少的service,整个层次结构像一个倒金字塔。(原因在于This is because developers should not have to learn a large set , of slightly different low-level primitives--which may even change during concurrent development.)

 

Page 40 为Layer pattern 的layer设计接口有三种策略,如果Layer N视 Layer N-1为黑箱,则我们需要为Layer N-1定一个一个flat interface , 可以实现一个Facade Object; 如果LayerLayer N视 Layer N-1为白箱,则Layer N 可以直接调用Layer N-1内部实现的所有方法, Layer N知道Layer N -1 实现了多少个component,且清楚地知道每个component实现了那些功能。 

 

Page40 结构化某一个Layer: 如果一个Layer比较复杂,可以使用一些finer-grained pattern来帮助你组织它。比如:一个layer所提供的服务如果有多种实现方式,可以使用bridge pattern; 使用多个算法的layer可以使用Strategy pattern。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值