C#设计模式笔记-Bridge Pattern 桥接(结构型模式)

简介: 抽象不应该依赖于实现细节,实现细节应该依赖于抽象 动机(Motivation): 一些业务具有多个变化的角度。 意图(Intent): 将抽象部分于实现部分分离,使他们都独立地变化。 结构(Structure)   Bridge模式的几个要点: (1)Bridge模式使用“对象间的组合关系”解耦了抽象于和实现之间固有的绑定关系,使抽象和实现可以沿着各自的维度来变化 (2)所谓抽象和实现沿着各自的维度的变化,即“子类化”他们。

抽象不应该依赖于实现细节,实现细节应该依赖于抽象

动机(Motivation):

一些业务具有多个变化的角度。

意图(Intent):

将抽象部分于实现部分分离,使他们都独立地变化。

结构(Structure)

 

img_02724849eaf5aa790aaca9b3fbd59d44.gif

Bridge模式的几个要点:

(1)Bridge模式使用“对象间的组合关系”解耦了抽象于和实现之间固有的绑定关系,使抽象和实现可以沿着各自的维度来变化

(2)所谓抽象和实现沿着各自的维度的变化,即“子类化”他们。得到各个子类之后,便可以任意组合他们

(3)Bridge模式有时候类似于多继承方案,但是多继承方案往往违反单一职责原则(即一个类只有一个变化的原因),复用性比较差。Bridge模式是比多继承方案更好的解决方法。

(4)Bridege模式的应用一般在“两个非常强的变化维度”,即使有两个变化的维度,但是在某个方向的变化维度并不剧烈-换言之两个变化不会导致纵横交错的结果,并不一定要使用Bridge模式。

 

 

版权

作者:灵动生活 郝宪玮

出处:http://www.cnblogs.com/ywqu

如果你认为此文章有用,请点击底端的【推荐】让其他人也了解此文章,

img_2c313bac282354945ea179a807d7e70d.jpg

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 

相关文章
|
Unix C# 数据库
C#设计模式之七桥接模式(Bridge Pattern)【结构型】
原文:C#设计模式之七桥接模式(Bridge Pattern)【结构型】 一、引言   今天我们要讲【结构型】设计模式的第二个模式,该模式是【桥接模式】,也有叫【桥模式】的,英文名称:Bridge Pattern。
1416 0
|
XML SQL C#
乐在其中设计模式(C#) - 桥接模式(Bridge Pattern)
原文:乐在其中设计模式(C#) - 桥接模式(Bridge Pattern)[索引页][源码下载] 乐在其中设计模式(C#) - 桥接模式(Bridge Pattern) 作者:webabcd 介绍 将抽象部分与它的实现部分分离,使它们都可以独立地变化。
819 0
|
C# 设计模式 数据库
C#设计模式(8)——桥接模式(Bridge Pattern)
原文:C#设计模式(8)——桥接模式(Bridge Pattern) 一、引言 这里以电视遥控器的一个例子来引出桥接模式解决的问题,首先,我们每个牌子的电视机都有一个遥控器,此时我们能想到的一个设计是——把遥控器做为一个抽象类,抽象类中提供遥控器的所有实现,其他具体电视品牌的遥控器都继承这个抽象类...
1033 0
|
2月前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
44 3
|
17天前
|
存储 安全 编译器
学懂C#编程:属性(Property)的概念定义及使用详解
通过深入理解和使用C#的属性,可以编写更清晰、简洁和高效的代码,为开发高质量的应用程序奠定基础。
67 12
|
2月前
|
设计模式 C# 图形学
Unity 游戏引擎 C# 编程:一分钟浅谈
本文介绍了在 Unity 游戏开发中使用 C# 的基础知识和常见问题。从 `MonoBehavior` 类的基础用法,到变量和属性的管理,再到空引用异常、资源管理和性能优化等常见问题的解决方法。文章还探讨了单例模式、事件系统和数据持久化等高级话题,旨在帮助开发者避免常见错误,提升游戏开发效率。
74 4
|
4月前
|
API C#
C# 一分钟浅谈:文件系统编程
在软件开发中,文件系统操作至关重要。本文将带你快速掌握C#中文件系统编程的基础知识,涵盖基本概念、常见问题及解决方法。文章详细介绍了`System.IO`命名空间下的关键类库,并通过示例代码展示了路径处理、异常处理、并发访问等技巧,还提供了异步API和流压缩等高级技巧,帮助你写出更健壮的代码。
56 2