经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » 设计模式 » 查看文章
【设计模式】Bridge
来源:cnblogs  作者:楷哥  时间:2019/7/26 8:59:40  对本文有异议

前言

Bridge设计模式,将一个复杂类分成可以单独开发的部分。分成的两个部分,abstraction,implementation。字面上是抽象和实现,但不同于抽象方法及其实现。下面摘录Wiki的两句话。

decouple an abstraction from its implementation so that the two can vary independently

这句话,讲的是这个模式的定义。Bridge将abstraction从implementation中抽取出来,让abstraction和implementation这两个部分可以单独的变化。

The class itself can be thought of as the abstraction and what the class can do as the implementation.

这句话太精髓了!复杂类究竟该怎么分成两个部分?这句话给出了回答。一部分是我们看这个类应该是怎么样子的,另一部分是它可以做什么。

例子

下面改一改来自[1]的回答。

When:

  1. ----Animal----
  2. / Dog Cat
  3. / \ / RunDog SleepDog RunDog SleepDog

Refactor to:

  1. ----Animal---- Behavior
  2. / \ / Dog(Behavior) Cat(Behavior) Run Sleep

应用场景

  1. 当需要运行时更改implementation的时候。和Strategy类似,但是这两个模式所解决的问题是不一样的。
  2. 当一个类的变化处在两个维度,一个类违反了单一职责原则的时候。

总结

这篇博客太水了。

参考

  1. https://stackoverflow.com/questions/319728/when-do-you-use-the-bridge-pattern-how-is-it-different-from-adapter-pattern
  2. https://en.wikipedia.org/wiki/Bridge_pattern

原文链接:http://www.cnblogs.com/zhouzekai/p/11246446.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号