java中的桥接模式

桥接模式的英文是 Bridge ,桥接模式关注抽象的设计。抽象是指包含了一组抽象方法的类,这些抽象方 法可能包含多个实现。

实现抽象的一般做法是创建类的层次结构,该层次结构的顶部是一个包含抽象 方法的抽象类,该类的每一个子类都提供这些抽象方法的不同实现。但是,当需要对该层次进行子类化时,这 一做法就存在不足了。

你可以创建一个桥,然后把这些抽象方法移到接口中,这样,抽象就依赖于接 口的实现。

桥接模式的意图是:将抽象与抽象方法的实现相互分离来实现解耦,以便二者可以相互独 立的变化。

上面这段话的意思就是说实现与抽象相分离。

下面举个例子说明:

1.现在 水果里有 苹果和橘子

2.人分为 男人和女人

3.人都可以吃水果,所以有 2*2 = 4 中情况

如果我们不用桥接模式,那么实现这么多情况就需要一个一个的去实现,也就是4类,那么我们使用桥 接模式呢?答案是:2类。这在条件和实现比较多的情况下优势会更明显。

具体的实现:

下面 首先给出实现的UML图

时间: 2024-11-03 21:22:35

java中的桥接模式的相关文章

讲故事,学(Java)设计模式—桥接模式

讲故事,学(Java)设计模式-桥接模式 2013/11/09 | 分类: 基础技术 | 0 条评论 | 标签: Java, 设计模式 分享到:12 本文由 ImportNew - 陈雅峰 翻译自 programcreek.欢迎加入翻译小组.转载请见文末要求. 本文由 @胡试之 校稿.如果你也希望参与类似的系列文章翻译,可以加入我们的Java开发 和 技术翻译 小组. 简单来讲,桥接模式是一个两层的抽象. 桥接模式是用于"把抽象和实现分开,这样它们就能独立变化". 桥接模式使用了封装.

Java中的状态模式实例教程

原文链接 作者:Pankaj Kumar 译者:f0tlo <1357654289@qq.com> 状态模式是一种行为设计模式.适用于当对象的内在状态改变它自身的行为时. 如果想基于对象的状态来改变自身的行为,通常利用对象的状态变量及if-else条件子句来扮演针对对象的不同行为.状态模式Context(环境)和State(状态)分离的方式既保证状态与行为的联动变化,又使得这种变化是条理明晰且松耦合的. Context是包含了状态引用的类,此引用指向一个状态的具体实现.并且帮助把对状态的请求委

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

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

java中的工厂模式

举两个例子以快速明白Java中的工厂模式: 女娲抟土造人 话说:"天地开辟,未有人民,女娲抟土为人."女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面. 女娲造人,这就是简单工厂模式的应用. 首先,在这个造人的思想里面,有几个重要的角色:女娲本身.抽象的人的概念和女娲所造出的一个个具体的人. 1.)女娲是一个工厂类,也就是简单工厂模式的核心角色.         2.)具休的一个个的人,包括张三,李四等.这些人便是简单工厂模式里面的具体产品角色 3.)抽象

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

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

Java中的外观模式

外观模式(Facade) 外观模式的意图是:为子系统提供一个接口,便于它的使用. 解释: 简单的说,外观模式就是封装多个上层应用需要的方法,使得上层调用变得简单,为上层提供简单的 接口,是设计模式中一种比较简单的设计思想,但是,也是最常用的一种设计模式. 举例: 当 你想吃橘子的时候,你需要做那几件事呢? 1:去买橘子 2:剥橘子 3:吃橘子 这样去一步一步的调用各个方法是不是觉得很麻烦呢?所以,我们需要做的工作就是简化这些步骤,把它封装 在一个方法中实现. 实现: 下面给出实现代码的UML图.

JAVA中的命令模式实例教程

命令模式是一种行为模式,因此,它处理的是对象的行为.命令模式为系统中不同的对象提供中性化的交流媒介.根据GoF的定义,命令模式是: 通过封装一组完全不相关的对象相互之间的的交互及通讯来完成松耦合. 允许某一个对象的行为的变化是独立于其他对象的. 在企业级应用中,命令模式是非常有用的,它使得多个对象可以相互交流.如果一些对象与另一些对象直接交流,系统组件之间是紧耦合的方式.这种方式导致系统具有更高的可维护性,可扩展的灵活性变得很低.命令模式专注于提供一个调解人介于需要交流的对象之间来帮助完成对象间

Java中的策略模式实例教程

策略模式是一种行为模式.用于某一个具体的项目有多个可供选择的算法策略,客户端在其运行时根据不同需求决定使用某一具体算法策略. 策略模式也被称作政策模式.实现过程为,首先定义不同的算法策略,然后客户端把算法策略作为它的一个参数.使用这种模式最好的例子是Collection.sort()方法了,它使用Comparator对象作为参数.根据Comparator接口不同实现,对象会被不同的方法排序.详细介绍请看java中的排序对象. 本文例子是,完成一个简单地购物车,两种付款策略可供选择,一为信用卡,另

Java中的模板模式

原文链接 作者:Pankaj Kumar   译者:f0tlo <1357654289@qq.com> 模板模式是一种行为设计模式,它的实现思路是,创建一个桩方法,并且定义一些步骤让子类来实现.模板方法定义了一个算法的执行步骤,或者说能够提供一种默认的实现,这种实现概括一部分子类或者全部子类的共同部分. 举一个例子帮助理解,假设提供一种造房子的算法.算法的步骤就是模拟造房子的过程:建地基.建支撑,最后添加墙和窗户 – 1. Fundation,2. Pillars,3. Walls,4. Wi