《Java与模式》中提到Bridge模式的用意是将“抽象化(abstration)与实现化(Implmentation)脱耦,使二者可以独立的变化”。
抽象化就是指多个实体之间的共有概念性联系,就是忽略一些信息,把不同实体当同一实体对待。
实现化就是针对抽象化具体的实现。
脱藕也就是Bridge中针对抽象化和实现化的重要意图之所在,也就是将抽象化和实现化之间进行一定的分离,降低它们之间的耦合性,继承是属于一种强耦合(强关联),或说将它们之间的强关联关系转化成弱关联关系。
强关联就是在程序编译期间已经确定关联关系,而在运行期间不能改变他们之间的关联关系。而弱关联就是动态的确定可以在运行期间改变他们之间的关联。继承关系就是强关联,聚合就是若关联关系,所以Bridge的核心思想就在于将继承关系向聚合关系转换,换句话说就是用聚合代替继承。
Bridge模式多用于在实体在两个维度上的动态组合是运用。譬如:食物(Food)是一实体,可以抽象出来,从一个维度扩展来说如具体食物面条(Noodle),米饭(Rice)等,而从另外一个维度扩展可以是干面,湿面,干饭,稀饭。此时作为具体食物可以继承Food抽象类,如果运用Bridge模式就不继承,采用聚合形式将强关联转变为若关联关系。
package com.wayne.bridge; public abstract class Food { protected FoodImpl foodImpl; public void toFull(){ foodImpl.toFullImpl(); } } package com.wayne.bridge; public abstract class FoodImpl { public abstract void toFullImpl(); } package com.wayne.bridge; public class Rice extends FoodImpl { @Override public void toFullImpl() { System.out.println("rice make me full......."); } } package com.wayne.bridge; public class Noodle extends FoodImpl { @Override public void toFullImpl() { System.out.println("noodles make me full......."); } } package com.wayne.bridge; public class DryFood extends Food { public DryFood(FoodImpl foodImpl) { this.foodImpl = foodImpl; } } package com.wayne.bridge; public class WedFood extends Food { public WedFood(FoodImpl foodImpl) { this.foodImpl = foodImpl; } } package com.wayne.bridge; public class Person { public static void main(String[] args) { //来一碗干饭 Food food = new DryFood(new Rice()); food.toFull(); //来一碗汤面 food = new WedFood(new Noodle()); food.toFull(); } }
如果要炒饭或者炒面,那么只需要添加一个类继承Food ---> FryFood就可以了
Bridge模式就是分离抽象和实现,封装可变因素。
相关推荐
**桥梁模式(Bridge)**是一种结构型设计模式,它的主要目的是将抽象部分与其实现部分解耦,使得它们可以独立地进行变化。在C++编程中,这种模式尤其有用,因为它允许我们创建灵活且可扩展的系统,同时保持代码的低...
桥梁模式(Bridge Pattern)是设计模式中的一种结构型模式,它的核心思想是将抽象部分与实现部分分离,使得它们可以独立地进行变化。在这个主题中,我们将深入探讨桥梁模式的原理、结构以及如何在Java中实现。 首先...
**桥梁模式(Bridge Pattern)详解** 桥梁模式是一种结构型设计模式,它将抽象部分与实现部分分离,使得它们可以独立地进行变化。这种模式的主要目的是为了将抽象化和实现化解耦,使得两者可以独立发展,增加了系统...
com.javapatterns.bridge 桥梁模式 com.javapatterns.builder 建造者模式 com.javapatterns.carp 组合/聚合复用原则 com.javapatterns.chainofresp 责任链模式 com.javapatterns.chainofresp.scheduler 专题:...
Bridge 桥梁模式 桥梁模式将抽象与其实现分离,使得它们可以独立变化。例如,在与MM的日常交往中,无论是早上还是晚上,无论对方是穿着新衣服还是换了新发型,都可以灵活地表达赞美,而无需每次都调整自己的表达...
桥梁模式是一种设计模式,它是结构型模式的一种,其主要目的是将抽象部分与实现部分分离,使得它们可以独立地进行变化。在Java中实现桥梁模式,我们可以有效地解耦系统中的类,提高代码的可扩展性和可维护性。 首先...
在Bridge模式中,抽象类(Abstract Class)和实现类(Implementor Class)是两个独立的继承体系,通过一个“桥梁”类(Bridge Class)进行连接,使得抽象部分可以动态地更换不同的实现部分,实现部分也可以独立地...
Bridge模式通过引入一个抽象接口作为桥梁,使得抽象类与其实现类能够解耦,提供更大的灵活性。 在软件开发中,随着系统的复杂性增加,抽象类和它的实现类可能会变得越来越庞大,导致代码难以维护。Bridge模式通过将...
桥梁模式(Bridge Pattern)是一种结构型设计模式,旨在通过将抽象部分与它的实现部分分离,来使得它们可以独立地变化。该模式主要涉及两个角色:抽象化(Abstraction)和实现化(Implementor)。在PHP中实现桥梁...
1. **模式定义**:桥梁模式(Bridge Pattern)是一种行为设计模式,它将抽象部分与实现部分分离,使得它们可以独立地进行变化。这种模式的主要目标是将抽象部分和实现部分解耦,这样即使两部分都需要改变,也可以...
facade门面模式、proxy代理模式、adapter适配器(变压器)模式、composite合成模式、decorator装饰模式、bridge桥梁模式、flyweight享元模式 行为模式 template模板方法模式、memento备忘录模式、observer观察者模式...
**桥梁模式(Bridge Pattern)**是一种设计模式,属于对象的结构模式,主要目的是为了将抽象部分与其实现部分分离,使这两者可以独立地进行变化。这种模式也被称为柄体模式或接口模式,它有助于实现开闭原则,即对扩展...
JavaScript设计模式中的桥梁模式是一种结构型模式,它旨在将抽象部分与实现部分分离,使得它们可以独立地进行变化。在本文中,通过几个实例来解释如何在JavaScript中应用桥梁模式。 首先,我们来看一个基本的事件...
**一、桥梁模式的核心概念** 1. **抽象化(Abstraction)**:这是桥接模式中的关键角色,它定义了一组接口,这些接口定义了客户程序期望的抽象操作。抽象化角色通常包含对实现化角色的引用,以便调用相应的实现方法...
11、桥梁模式BRIDGE PATTERN 12、命令模式COMMAND PATTERN 13、装饰模式DECORATOR PATTERN 14、迭代器模式ITERATOR PATTERN 15、组合模式COMPOSITE PATTERN 16、观察者模式OBSERVER PATTERN 17、责任链模式 18、...
在传统的继承关系中,抽象类和具体实现通常是紧密绑定的,而桥接模式通过引入一个“桥梁”角色,使得两者可以独立发展。这提供了更大的灵活性,允许在运行时动态地改变对象的行为。 在IT领域,桥接模式常用于处理...
桥梁模式(BRIDGE PATTERN) 桥梁模式是一种结构型设计模式,它将一个类的抽象部分与实现部分分离,以便可以独立地更改它们。桥梁模式可以帮助开发者编写更加灵活的代码,以提高系统的可维护性。例如,在一个游戏中...
3.桥梁模式(Bridge Pattern): 桥梁模式是将抽象部分与实现部分分离,使他们可以独立地变化。它的主要作用是降低耦合度,提高代码的灵活性和可扩展性。 4. 装饰者模式(Decorator Pattern): 装饰者模式是动态地...
- **连接建立**:b4a_bridge.apk的主要作用是在Android手机与开发者的电脑之间建立桥梁,允许两者通过网络进行通信,实现远程调试。 - **调试接口**:这个程序可能包含了必要的API和协议,使得B4A IDE可以发送调试...