桥接模式的桥接方向

问题描述

在网上,有很多文章都引用了下图,图中手机对象持有软件接口对象。在《研磨设计模式》中,作者提到桥接模式的桥接方向是单向的。在这个例子中,桥接方向为什么是这样呢?关于该列的桥接方向,我的想法正好与之相反,认为应该是软件对象持有手机接口对象。理由:既然是跨手机品牌的软件,应该是意味着软件是抽象的,软件能适应不同的品牌手机,通过桥接模式解除软件对具体的手机品牌的依赖。请高手帮助分析、指导。

解决方案

解决方案二:
这个讲得太复杂了:桥接器最简单的理解:表示与实现分离。所谓的表示就是类+属性,实现就是方法的具体实现,如三角形有很多属性,还有一个draw方法,一般的时候这个draw方法我们都会在三角形的类里实现,用桥接器模式的话,其他的内容不变,只是这个draw方法的实现由其他专门负责绘制的类提供。看这里,讲得非常容易懂:
解决方案三:
引用1楼Inhibitory的回复:

这个讲得太复杂了:桥接器最简单的理解:表示与实现分离。所谓的表示就是类+属性,实现就是方法的具体实现,如三角形有很多属性,还有一个draw方法,一般的时候这个draw方法我们都会在三角形的类里实现,用桥接器模式的话,其他的内容不变,只是这个draw方法的实现由其他专门负责绘制的类提供。看这里,讲得非常容易懂:

你说的是桥接模式一种表现形式,但桥接模式并不仅指这吧?
解决方案四:
引用1楼Inhibitory的回复:

这个讲得太复杂了:桥接器最简单的理解:表示与实现分离。所谓的表示就是类+属性,实现就是方法的具体实现,如三角形有很多属性,还有一个draw方法,一般的时候这个draw方法我们都会在三角形的类里实现,用桥接器模式的话,其他的内容不变,只是这个draw方法的实现由其他专门负责绘制的类提供。看这里,讲得非常容易懂:

希望针对我的想法给予指导,否则就意味着谁持有谁是无所谓的。
解决方案五:
个人理解:通过桥接,把系统分成抽象和实现两部分。桥接是一种脱藕方式,实现部分封装了系统的某个依赖因素,使得抽象部分与该依赖因素脱藕。由此达到:实现部分可以根据依赖因素变化,抽象部分与该依赖因素无关但可以根据其他依赖因素(可能是多个)变化。若不断桥接,则可以不断地分离依赖因素,系统的灵活性就可以不断提高。(当然这是理想化的)

时间: 2024-09-11 01:59:37

桥接模式的桥接方向的相关文章

深入解析iOS应用开发中对设计模式中的桥接模式的使用_IOS

引言 在项目开发中,我们会遇到这样的一种场景:某些类型由于自身的逻辑,往往具有两个或多个维度的变化,比如说大话设计模式书中所说的手机,它有两个变化的维度:一是手机的品牌,可能有三星.苹果等:二是手机上的软件,可能有QQ.微信等.如何应对这种"多维度的变化"?怎样利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就是本章桥接模式所要解决的问题. 何为桥接模式?     桥接模式的目的是把抽象层次结构从其实现中分离出来,使其能够独立变更.抽象层定义了供

经典设计模式——桥接模式

    桥接模式是一种结构型模式,它主要应对的是:由于实际的需要,某个类具有两个或以上维度的变化,如果只是使用继承,将无法实现这种需要,或者是的设计变得更加臃肿.     举例来说,假设现在我们需要为某个餐厅制造菜单,餐厅供应牛肉面.猪肉面--,而且顾客可以根据自己的口味选择是否添加辣椒.此时就产生了一个问题,我们如何来应对这种变化(这已经是两个维度的变化了,一个维度是面里面加的什么肉,另一个维度是加不加辣椒)?我们是否需要定义辣椒牛肉面.无辣牛肉面.辣椒猪肉面.无辣猪肉面4(2^2)个子类?如

Java结构型设计模式中的适配器模式与桥接模式解析_java

适配器模式 定义 适配器模式(英语:adapter pattern)有时候也称包装样式或者包装.将一个类的接口转接成用户所期待的.一个适配使得因接口不兼容而不能在一起工作的类工作在一起. 有两类适配器模式: 1. 对象适配器模式 - 对象适配器通过关联满足用户期待接口,还降低了代码间的不良耦合.在工作中推荐使用"对象适配". 2. 类适配器模式 - 这种适配器模式下,适配器继承自已实现的类(一般多重继承),java中没有多重继承,所以这里不做介绍. 实现 1. Target - 定义C

VMware中的桥接模式、NAT(网络地址转换模式)、Host-only(主机模式):转自:http://blog.chinaunix.net/uid-11798538-id-3061551.html

其中VMnet1是虚拟机Host-only模式的网络接口,VMnet8是NAT模式的网络接口,这些后面会详细介绍.在VMware Workstation中,默认有3个虚拟交换机,分别是VMnet0(使用桥接网络).VMnet1(仅主机网络)和VMnet8(NAT网络),还可以根据需要添加VMnet2-VMnet7和VMnet9等7个虚拟机交换机,而在VMware Workstation 5以后的版本中,还可以使用Team中的提供的虚拟交换机. 1. Bridged(桥接模式)  在桥接模式下,V

详解JavaScript设计模式开发中的桥接模式使用_基础知识

桥接模式将抽象部分与实现部分分离开来,使两者都可以独立的变化,并且可以一起和谐地工作.抽象部分和实现部分都可以独立的变化而不会互相影响,降低了代码的耦合性,提高了代码的扩展性. 按照GoF的定义,桥接模式的作用在于"将抽象与其实现隔离开来,以便二者独立变化".这种模式对于Javascript中常见的事件驱动的编程大有裨益. 桥接模式最常见和实际的应用场合之一是事件监听器回调函数. example:事件监听器,把事件处理的语句封装到回调函数中,通过接口而不是实现进行编程. 基本理论 桥接

.NET下的设计模式研究之桥接模式

设计 概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种"多维度的变化"?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式. 意图 将抽象部分与实现部分分离,使它们都可以独立的变化.[GOF <设计模式>] 结构图 图1 Bridge模式结构图 生活中的例子 桥接模式将抽象部分与它的实现分离,使它们能够独立地变化.一个普通的开关控制的电灯.电风扇等等,都是桥接的例子.开

.NET设计模式(9):桥接模式(Bridge Pattern)

概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种"多维度的变化"?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式. 意图 将抽象部分与实现部分分离,使它们都可以独立的变化.[GOF <设计模式>] 结构图 图1 Bridge模式结构图 生活中的例子 桥接模式将抽象部分与它的实现分离,使它们能够独立地变化.一个普通的开关控制的电灯.电风扇等等,都是桥接的例子.开关的目

桥接模式之牛郎织女幸福牵手

  这是一个很美丽的,千古流传的爱情故事,每到农历七月初七,相传牛郎织女鹊桥相会的日子,牛郎和织女被银河隔开,只允许每年的农历七月七日相见.为了让牛郎和织女能顺利相会.各地的喜鹊就会飞过来用大家的身体紧贴着搭成一座桥,此桥就叫做鹊桥.牛郎和织女便在这鹊桥上相会.我就会抬头仰望星空,寻找银河两边的牛郎星和织女星,希望能看到他们一年一度的相会......   在牛郎织女相会的过程中,喜鹊是功不可没的大臣,我们今天的设计模式就从鹊桥开始说起---桥接模式,顾名思义,在接口与实现之间,架设一座桥梁,这座

C# 设计模式系列教程-桥接模式_C#教程

1. 概述 将抽象部分(Abstraction)与实现部分(Implementor)分离,使它们可以独立地变化. 2. 解决的问题 在软件系统中,有些类型由于自身的逻辑,它具有两个或多个维度的变化.为了解决这种多维度变化,又不引入复杂度,这就要使用Bridge模式. 3. 模式中的角色 2.1 抽象(Abstraction):定义抽象接口,该接口中包含实现具体行为.具体特征的Implementor接口. 2.2 提炼的抽象(RefinedAbstraction):继承自Abstraction的子