桥接模式(Bridge)是关注抽象类的的设计模式。桥接模式的意图是将抽象类与抽象方法的实现相互分离来实现解耦,以便二者可以相互独立地变化。
比如面馆的面条,有的人喜欢吃的辣一点,有人喜欢淡一点;有的人爱吃牛肉面,有人爱吃三鲜面。不管是什么面都是面条。但是每种面条的口味可以按个人的喜好进行调节。这个场景就可以使用桥接模式很好的解决。
/** * 面条的抽象类 * @author Lenovo * @version $Id: Noodle.java, v 0.1 2014年9月26日 下午5:26:06 Lenovo Exp $ */ public abstract class Noodle { /** * 苗条的口味风格 */ private Style style; public Noodle(Style style) { super(); this.style = style; } public void eat() { System.out.println("吃 " + style.getPreference() + " 一点的 " + getName() + " 面条"); } /** * 抽象方法,获取面条的类型 * * @return */ protected abstract String getName(); /** * Getter method for property <tt>style</tt>. * * @return property value of style */ public Style getStyle() { return style; } /** * Setter method for property <tt>style</tt>. * * @param style value to be assigned to property style */ public void setStyle(Style style) { this.style = style; } } /** * * @author Lenovo * @version $Id: Style.java, v 0.1 2014年9月26日 下午5:24:35 Lenovo Exp $ */ public interface Style { /** * 获取跟人的偏好 * * @return */ public String getPreference(); }
目前面馆提供两种面条,牛肉面,三鲜面
/** * * @author Lenovo * @version $Id: BeefNoodle.java, v 0.1 2014年9月26日 下午5:35:20 Lenovo Exp $ */ public class BeefNoodle extends Noodle { /** * @param style */ public BeefNoodle(Style style) { super(style); } /** * @see com.cathy.demo.pattern.bridge.Noodle#getName() */ @Override protected String getName() { return "牛肉"; } } /** * * @author Lenovo * @version $Id: SeafoodNoodle.java, v 0.1 2014年9月26日 下午5:36:33 Lenovo Exp $ */ public class SeafoodNoodle extends Noodle { /** * @param style */ public SeafoodNoodle(Style style) { super(style); } /** * @see com.cathy.demo.pattern.bridge.Noodle#getName() */ @Override protected String getName() { return "三鲜"; } }
/** * * @author Lenovo * @version $Id: HotStyle.java, v 0.1 2014年9月26日 下午5:37:38 Lenovo Exp $ */ public class HotStyle implements Style { /** * @see com.cathy.demo.pattern.bridge.Style#getPreference() */ public String getPreference() { return "辣"; } } /** * * @author Lenovo * @version $Id: LightStyle.java, v 0.1 2014年9月26日 下午5:38:18 Lenovo Exp $ */ public class LightStyle implements Style { /** * @see com.cathy.demo.pattern.bridge.Style#getPreference() */ public String getPreference() { return "清淡"; } }
测试:
/** * * @author Lenovo * @version $Id: Client.java, v 0.1 2014年9月26日 下午5:36:54 Lenovo Exp $ */ public class Client { /** * * @param args */ public static void main(String[] args) { Noodle n = new BeefNoodle(new HotStyle()); n.eat(); n = new BeefNoodle(new LightStyle()); n.eat(); n = new SeafoodNoodle(new HotStyle()); n.eat(); n = new SeafoodNoodle(new LightStyle()); n.eat(); } }
结果是:
吃 辣 一点的 牛肉 面条
吃 清淡 一点的 牛肉 面条
吃 辣 一点的 三鲜 面条
吃 清淡 一点的 三鲜 面条
相关推荐
桥接模式(Bridge Pattern)是一种常用的设计模式,它将抽象化和实现化解耦,使用封装、聚合以及继承等基本技术,将两个独立变化的维度通过抽象化的方式进行桥接,从而降低了它们之间的耦合度,使得系统更加灵活。...
Java设计模式是软件开发中的一种最佳实践,它总结了在解决特定问题时程序员们经常采用的有效方法。这个“JAVA设计模式-chm版”资源显然包含了关于Java设计模式的详细信息,便于理解和应用。设计模式是对常见问题的...
这篇名为"JAVA设计模式---100%推荐"的资源,可能是对Java设计模式的深入解析,旨在帮助开发者更好地理解和应用这些模式。 设计模式通常分为三类:创建型、结构型和行为型。创建型模式涉及对象的实例化过程,如单例...
JAVA设计模式-day2,请的行业大能讲得课程,涉及:创建模式(5种: 1、 工厂方法模式(Factory Method); 2、 抽象工厂模式; 3、 单例模式(Singleton) • 4、 建造者模式(Builder); 5、 原型模式(Prototype...
**Java设计模式——入门** 设计模式是软件开发中的一种最佳实践,它是在特定上下文中解决常见问题的经验总结。Java设计模式是面向对象编程中的一个重要概念,可以帮助开发者编写可复用、可维护、易于理解的代码。这...
桥接模式(Bridge Pattern)是设计模式中结构型模式的一种,它的主要目的是将抽象部分与实现部分解耦,使得它们可以独立地进行变化。在Java编程中,这种模式的应用可以帮助我们构建更加灵活、可扩展的代码结构。 ...
桥接模式(Bridge)是一种结构型设计模式,旨在将抽象部分与其实现部分分离,使得它们可以独立地进行变化。在Java编程中,桥接模式可以帮助我们处理多维度的变化,避免过度使用继承导致的类爆炸问题。 在桥接模式中...
桥接模式(Bridge Pattern)是一种用于将抽象部分与其实现部分分离的设计模式,这样两者就可以独立变化。该模式属于对象结构型模式,有时也被称为柄体(Handle and Body)模式或接口(Interface)模式。 **英文定义...
桥接模式是软件设计模式中的一种结构型模式,它的主要目的是为了实现抽象和实现的解耦,使得两者可以独立地进行扩展。在桥接模式中,抽象类(Abstraction)不直接引用具体实现(Implementation),而是通过一个桥接...
《Java设计模式》是刘伟教授的一本关于设计模式的教材,主要面向高等学校的学生和对Java编程有深入兴趣的开发者。设计模式是软件工程中的一种重要思想,它封装了在特定场景下的问题解决方案,可以提高代码的可读性、...
Java设计模式是软件工程中的一种最佳实践,它提供了一种在特定情况下解决常见问题的标准化方法。设计模式不是具体的代码或库,而是一种通用解决方案的描述,可以应用于各种编程语言,包括Java。在这个名为"JAVA ...
桥接模式和策略模式是软件设计模式中的两种重要模式,它们在实现上有着相似之处,但各自的应用场景和设计理念有所不同。下面将详细阐述这两种模式的特点、区别以及它们在实际编程中的应用。 首先,桥接模式(Bridge...
《设计模式——Java语言中的应用》是一本专为Java开发者深入理解面向对象设计而编写的经典书籍。设计模式是软件工程领域中经过实践验证的、解决常见问题的有效方案,它们代表了在特定上下文中,针对特定问题的最优...
- 23种设计模式 - 工厂方法模式(Factory Method) - 抽象工厂模式(Abstract Factory) - 单例模式(Singleton) - 建造者模式(Builder) - 原型模式(Prototype) - 代理模式(Proxy) - 适配器模式(Adapter) - 装饰...
Java设计模式是Java开发中的核心元素,它们分为三类:创建型模式、结构型模式和行为型模式。创建型模式关注对象的创建,如单例模式(Singleton)、工厂方法模式(Factory Method)和抽象工厂模式(Abstract Factory...
《Java设计模式实战详解》 在Java编程领域,设计模式是一种通用、可重用的解决方案,用于解决在软件设计中常见的问题。这个压缩包“java-design-patterns-master”显然是一个专注于Java设计模式的学习资源,旨在...
桥接模式(Bridge Pattern),将抽象部分与它的实现部分分离,使它们都可以独立地变化。更容易理解的表述是:实现系统可从多种维度分类,桥接模式将各维度抽象出来,各维度独立变化,之后可通过聚合,将各维度组合...
Java设计模式是软件工程中的一种最佳实践,它总结了在特定场景下解决常见问题的经验,为程序员提供了可重用的解决方案。本资料“《java设计模式》课后习题模拟试题解答——刘伟.zip”主要涵盖了Java设计模式的学习与...
桥接模式(Bridge Pattern)是一种常用的结构型设计模式,它主要用于解决抽象部分和实现部分的耦合问题。这种模式通过将抽象和实现分离,使得两者可以独立变化。这种设计方式不仅提高了系统的可扩展性,还简化了系统...
根据提供的文档信息,我们可以从这份《Java设计模式》模拟试题参考答案及评分标准中提炼出以下关键知识点: ### 一、基础知识与概念 #### 1. 设计模式基础概念 - **里氏替换原则**(Liskov Substitution Principle...