zoukankan      html  css  js  c++  java
  • 桥接模式与工厂模式区别

    工厂模式主要负责创建对象而桥模式主要负责将抽象的不同形式与具体实现部分分离。问题关键是如何理解桥接模式,理解了桥接模式就能明确他们之间的区别,而要理解桥接模式,你应该从宏观而不能从微观的角度去看一个架构的设计,举个桥接模式的例子:最典型的例子就是JDBC。JDBC API(Sun)提供抽象部分,各个JDBC驱动厂商(Oracle, Mysql...)提供实现部分。新的JDBC驱动可以“即插即用”在JDBC API中,而不需要修改我们调用者的代码。这就是所谓的抽象部分(JDBC API)与它的实现部分(JDBC Driver)分离。从宏观角度JDBC可以称为桥模式,但是从微观角度,JDBC中又使用了很多其他设计模式,比如工厂模式,策略模式等等。因此评价一个架构究竟使用了什么设计模式,我认为应该先从宏观角度说起,再从微观角度来看。

          工厂模式是一个产品,自己只是提出来需要厂家生产,而桥接模式则是自己的产品去调用某个对象里的某个方法而已。这就是区别。举个有意思的例子:

           说女娲创造人的故事,可不是“造人”的工作。这个故事是说,女娲在补了天后,下到凡间一看,哇塞,风景太优美了,天空是湛蓝的,水是清澈的,空气是清新的,太美丽了,然后就待时间长了就有点寂寞了,没有动物,这些看的到都是静态的东西呀,怎么办?别忘了是神仙呀,没有办不到的事情,于是女娲就架起了八卦炉(技术术语:建立工厂)开始创建人,具体过程是这样的:先是泥巴捏,然后放八卦炉里烤,再扔到地上成长,但是意外总是会产生的: 
    第一次烤泥人,兹兹~~,感觉应该熟了,往地上一扔,biu~,一个白人诞生了,没烤熟! 
    第二次烤泥人,兹兹兹兹兹兹~~,上次都没烤熟,这次多烤会儿,往地上一扔,嘿,熟过头了,黑人哪! 
    第三次烤泥人,兹~兹~兹~,一边烤一边看着,嘿,正正好,Perfect!优品,黄色人类!

          这样这个世界就热闹起来了,人也有了,但是这样创建太累了,神仙也会累的,那怎么办?神仙就想了:我塞进去一团泥巴,随机出来一群人,管他是黑人、白人、黄人,只要是人就成(你看看,神仙都偷懒,何况是我们人),这在设计模式里就演化成了工厂模式。

    转自:http://hi.baidu.com/gabe2008/item/6b31681582fbe038b93180a1

  • 相关阅读:
    sql2slack alash3al 开源的又个轻量级工具
    pgspider fetchq 扩展docker镜像
    godns 集成coredns 的demo
    godns 简单dnsmasq 的dns 替换方案
    aviary.sh 一个基于bash的分布式配置管理工具
    使用coredns 的template plugin实现一个xip 服务
    nginx 代理 coredns dns 服务
    基于nginx proxy dns server
    几个不错的geodns server
    spring boot rest api 最好添加servlet.context-path
  • 原文地址:https://www.cnblogs.com/youxin/p/3097340.html
Copyright © 2011-2022 走看看