再谈外观模式

       在上次重构机房收费系统时,好多人千篇一律的画出了这样的架构图。                 

                              

      采用的是经典三层加外观、抽象工厂加反射以及辅助类的架构。关于这个架构,我想说一下外观模式。

      外观:提供了一个统一的接口,用来访问子系统中的一群接口。

      UI层和BLL层之间,有些交互需要调用BLL层中好几个类,但是有些只需要一个调用一个。所以在写的时候曾这样想,将复杂的操作,通过外观来整合;简单的就直接用UI层调BLL层。然后就出现了下面的架构图。

                                 

        对于这个,有点疑惑。因为这样之后,明显感觉乱了好多,但是又不没有违反外观模式啊。

       因为我在看HeadFirst中,它这样说外观模式:通过实现一个提供更合理的接口的外观类,你可以将一个复杂的子系统变得容易使用。如果你需要复杂子系统的强大威力,别担心,还是可以使用原来的复杂接口的;如果你需要的是一个方便使用的接口,那就使用外观。

       上面叙述的就是我对上面一段话的理解。

       但是为什么我们再架构时将那一条线给去掉了么?

       我个人感觉是为了架构的清晰。在用设计模式的时候,有些东西还是需要取舍的。出现了BLL中的东西很简单,在外观中直接return一下也是可以接受的,这样,UI层与BLL层的耦合就解开了,替代的是一个接口更加清晰的外观层。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值