桥接模式:从操作系统的可移植性说起

原创 2012年03月26日 23:12:22

桥接模式:将抽象部分与它的实现部分分离,使得二者可以独立地变化。(说实话,这个很难理解!!!)

抽象部分:继承关系里的抽象类,一般位于上层,平台无关

实现部分:继承关系里的实现类,一般位于底层,平台相关、实现细节

还是不理解,看实例讲解吧!

比如对一个操作系统来说,平台无关的是高层代码,属于抽象部分,而底层Bootloader、驱动程序则属于实现部分,是平台相关的。这里假设该操作系统具有良好的可移植性,即遵循DIP原则。


图1:可以移植的操作系统模型

对一个操作系统只要遵循这个模型,那么它就具备非常高的移植性。我们来看如何将这个操作系统轻松的移植到不同的硬件平台上去,假设需要移植到硬件平台由Intel x86、ARM2410、AMD:


图2:OS在不同硬件平台的移植

到目前为止,我们的操作系统OS都还是一个抽象的概念,我们还没有具体到某一个具体的操作系统,比如windows。那么,如果windows遵循这个模型,继承了OS这个抽象是什么效果了,可想而知,应该如下面这样:


图3:使windows具有可移植性

然后是Linux、MacOS,注意:不能让乔布斯知道 :)


图4:使linux和mac os继承OS

还是被乔布斯发现了:(,他说你个笨蛋,做了这么垃圾的东西出来。。。免不了跟乔布斯大吵一架 (因为你知道,一旦你说服乔布斯,他就会把这个想法占位己有,这对MacOS的推广是有利的)

你跟乔布斯解释道:一旦继承了OS,MacOS就会天生支持ARM、Intel、AMD等无数的芯片,再也不用为选芯片烦恼了,,,你继续巴拉巴拉说了一大堆。乔布斯最终同意了你的做法。

乔布斯为什么最终会同意呢,或许他明白了,你这里采用了一种设计模式——桥接模式(正好也姓乔,难怪乔布斯会同意),这的确是个好模式,几乎是完美的,它可以实现软件世界和硬件世界的大统。

为什么说这是桥接模式,来看看桥接模式的结构图,你就会恍然大悟了:


图5:桥接模式结构图

从图4和图5的对比,我们发现了对应关系:

OS——Abstraction

Windows、Linux、MacOS——RefinedAbstraction

移植接口——Implementor

ARM移植接口实现——ConcreteImplementorA

Intel x86移植接口实现——ConcreteImplementorB

再反过来理解一下桥接模式的定义吧:将抽象部分与它的实现部分分离,使得二者可以独立地变化


新版MacOS上市了,终于MacOS可以跑在任何平台上,一经推出由于其友好的用户界面,很快把Windows灭了。。。。。乔布斯在天堂开心的笑了!




【读书笔记】深入理解Java虚拟机——垃圾收集

Ubuntu11.10下编译 OpenJDK7 http://blog.csdn.net/yhmhappy2006/article/details/7281710 基本垃圾收集算法 标记-...

java中点画线法——画椭圆

public class DrawOval extends JFrame { private static final long serialVersionUID = 1L; public cl...

C++的可移植性和跨平台开发[5]:操作系统

C++的可移植性和跨平台开发[5]:操作系统 2009年03月14日 星期六 上午 2:04 上一个帖子提到了"硬件体系"相关的话题,今天来说说和操作系统相关的话题。C++跨平...

C++的可移植性和跨平台开发[5]--操作系统

上一个帖子提到了"硬件体系"相关的话题,今天来说说和操作系统相关的话题。C++跨平台开发中和OS相关的琐事挺多,所以今天会啰嗦比较长的篇幅,请列位看官见谅 :-)   为了不绕口,以下把Linux和...

C++可移植性和跨平台开发[5]:操作系统

上一个帖子提到了"硬件体系"相关的话题,今天来说说和操作系统相关的话题。C++跨平台开发中和OS相关的琐事挺多,所以今天会啰嗦比较长的篇幅,请列位看官见谅 :-)   为了不绕口,以下把Linux和...

c# winform 可移植性检测工具

  • 2014年10月11日 14:18
  • 950KB
  • 下载

如何理解编程语言的可移植性

编程语言的可移植性意味着,用一种编程语言在一个系统上编写的程序经过很少改动或者不经修改就可以在其他系统平台上运行。     要想了解可移植性必须要知道:1.什么是程序?2.什么是系统平台? 什么是程序...

可移植性C编码指南3.doc

  • 2015年07月14日 17:26
  • 143KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:桥接模式:从操作系统的可移植性说起
举报原因:
原因补充:

(最多只允许输入30个字)