`

【设计模式】手机软件何时统一 ---- 桥接模式

 
阅读更多

一,概述

定义:将抽象部分与实现部分分离,使它们都可以独立的变化。


在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。

【注意】C++中继承声明为 public

二,示例

两款手机,品牌M和品牌N,且每部手机都包含通讯录和游戏。

1)第一种实现

实现:

以手机品牌为抽象基类,手机品牌M、N继承手机品牌基类。

再分别实现M、N中的游戏和通讯录类。

最后用爷爷类:手机品牌, 创建孙子类通讯录M(N)和游戏M(N)

缺点:

如果再增加一个MP3类则需要在手机M 和手机N下面各自加一个子类(相似的子类)

如果添加一个手机品牌则需要添加更多的类


合成/聚合复用原则:尽量使用合成/聚合,尽量不要使用类继承。

聚合:表示一种“弱”的拥有关系,A对象可以包含B对象,但B对象不是A对象的一部分;大雁和大雁群的关系

合成:表示一种"强"的拥有关系,体现严格的整体和部分关系,且声明周期一样。大雁翅膀和大雁

类被封装后,被集中在单个任务上。这样类和类继承层次会保持较小规模,并且不太可能增长为庞然大物。


2)另一种程序

将手机软件作为基类,让通讯录和游戏继承手机软件。然后不同手机品牌分别继承各自功能。

缺点:增加手机功能,或者是增加手机牌子都会有较大的改动。



3)松耦合的程序

手机品牌为抽象类,包含各个品牌的具体类。

手机软件为抽嫌累,包含通讯录、游戏等

手机软件作为手机品牌的一个成员方法从而构成手机


三,桥接模式的基本代码



分享到:
评论

相关推荐

    设计模式精解-GoF-23种设计模式解析--附C++源代码

    设计模式是软件工程中的一种最佳实践,用于解决在软件开发过程中常见的问题。这些模式是由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位大师,通常被称为GoF(Gang of Four),在他们的经典著作...

    26种设计模式-----pdf

    设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的模板。这个压缩包文件名为"26种设计模式",其中可能详细介绍了软件开发中的26个核心设计模式。这些模式是经过时间检验、被广泛接受并反复使用...

    常见的设计模式-2024-03-21.zip

    设计模式是软件工程中的一种最佳实践,它是在特定情境下为了解决常见问题而形成的一套可重用的解决方案。这些模式是经验丰富的开发者在长期实践中总结出来的,并被广泛接受和应用于各种编程语言中。本资料包“常见的...

    设计模式PPT---25种设计模式详解

    设计模式是软件工程中的一种最佳实践,用于解决在开发过程中经常遇到的问题,提供了一套可重用的解决方案。这份名为“设计模式PPT——25种设计模式详解”的资料,显然是一个深入探讨设计模式的教程,它通过PDF格式对...

    软件体系结构---设计模式的java运行代码案例

    设计模式则是软件体系结构中的重要组成部分,它们是经过时间检验的解决方案模板,用于解决常见的设计问题。在这个“软件体系结构---设计模式的Java运行代码案例”中,我们将深入探讨如何在Java编程环境中应用这些...

    《Java设计模式》电子课件01至21章(程细柱PDF)

    内容包括统一建模语言基础知识、面向对象设计原则、设计模式概述、简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式、适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、...

    设计模式精解-GoF23种设计模式解析附C++实现源码

    设计模式是软件工程中的一种重要思想,它是在特定情境下,为解决常见问题而形成的一套最佳实践。GoF(Gang of Four)23种设计模式是软件开发中的经典,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides...

    设计模式可复用面向对象软件的基础 源码

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决常见问题的最佳实践。"设计模式可复用面向对象软件的基础"这一主题强调了设计模式在创建可维护、可扩展的面向对象软件中的核心作用。源码实现则为我们...

    java桥接模式java桥接模式.doc

    【Java桥接模式】是一种设计模式,用于将抽象部分与实现部分分离,使得它们可以独立进行变化。在上述场景中,我们看到一个典型的桥接模式应用:发送提示消息功能。 1. 场景问题: - 发送提示消息功能涉及到不同...

    设计模式精解-GoF 23种设计模式解析附C++实现源码 完整版

    《设计模式精解-GoF 23种设计模式解析附C++实现源码 完整版》是一份深入探讨软件工程中经典设计模式的重要资料,涵盖了面向对象编程中的核心设计原则和实践。这份资源主要关注GoF(Gang of Four,即《设计模式:可...

    设计模式(软件设计模式)

    设计模式是软件工程中的一种重要概念,它是在特定上下文中解决常见问题的模板或最佳实践。这些模式在软件开发过程中被广泛使用,因为它们提供了一种标准化的方法来处理复用性、灵活性和可维护性等问题。《软件设计...

    《设计模式:可复用面向对象软件的基础》学习并理解 23 种设计模式

    设计模式是一种被广泛采用的、经过验证的解决方案,用于解决软件开发过程中常见的设计问题。它不仅帮助开发者编写可复用的代码,还促进了团队成员之间的有效沟通。设计模式通常包括以下几个部分: 1. **模式名称**...

    Csharp设计模式电子版--一本很好C#设计模式

    《C#设计模式》是一本深入探讨C#编程语言中设计模式的专业书籍,它涵盖了软件开发中的各种经典设计模式,旨在提升代码的可维护性、可扩展性和复用性。设计模式是经过时间考验的解决方案,是软件工程中的宝贵经验结晶...

    [结构型模式] 桥接模式的理解

    桥接模式是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立进行变化。...通过分析“桥接模式-概念图.edx”和“桥接模式-类图.edx”这两个文件,你可以更深入地理解和应用桥接模式。

    23种 设计模式---面向对象的基本原则

    设计模式是软件工程中的一种最佳实践,它们是解决常见编程问题的经验总结,为软件开发提供了可复用的解决方案。在面向对象编程中,设计模式基于一些基本原则,这些原则构成了良好设计的基础。本篇将深入探讨23种设计...

    uml设计模式ppt

    设计模式是软件工程中经过实践验证的解决常见问题的模板,它们代表了在特定情境下,为了实现某种目标而采用的最佳实践。UML(统一建模语言)是描述这些模式的强大工具,它通过图表的形式,使得设计模式的概念更易于...

    java软件设计模式期末总结

    Java软件设计模式是软件开发中的重要概念,它们是经过时间考验的最佳实践,旨在解决常见的设计问题,提高代码的可读性、可维护性和可扩展性。以下是对标题和描述中涉及的一些关键知识点的详细说明: 1. **单一职责...

    设计模式:可复用面向对象软件的基础.zip

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决常见问题的最佳实践。这些模式经过时间的考验,被广泛应用于各种面向对象的软件开发中,以提高代码的可读性、可维护性和可复用性。本教程旨在深入讲解...

    研磨设计模式-配套源代码 UTF-8格式

    《研磨设计模式》是一本深入探讨软件设计原则与实践的经典书籍,其配套源代码提供了丰富的实例,帮助读者更好地理解和应用各种设计模式。这个UTF-8格式的压缩包包含了书中介绍的各种设计模式的实现,是学习和研究...

    设计模式专题,共 23 种设计模式。GOF design patter-java-design-patterns.zip

    设计模式是软件工程中的一种最佳实践,用于解决在软件开发过程中常见的问题。这些模式是由GoF(Gang of Four)在他们的经典著作《设计模式:可复用面向对象软件的基础》中提出的,包括了23种不同的设计模式,旨在...

Global site tag (gtag.js) - Google Analytics