桥接模式 红太狼 2021-12-09 00:51 54阅读 0赞 ## 前言 ## 1、**合成/聚合复用原则**,尽量使用使用合成/聚合,尽量不要使用类继承。 2、**合成和聚合**都是关联的特殊种类。 **聚合**表示弱的 ‘拥有’ 关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分; **合成**表示是一种强的‘拥有’关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。 3、**桥接模式**,将抽象部分与它的实现部分分离,使它们都可以独立地变化。 什么是抽象与它的实现分离,这并不是说,让抽象类与其派生类分离,因为这没有任何意义。实现指的是抽象类和它的派生类用来实现自己的对象。 ## 一、手机软件抽象类 ## 1 //手机软件 2 public abstract class App 3 { 4 public abstract void Run(); 5 } ## 二、具体的手机软件 ## 1 public class Game : App 2 { 3 public override void Run() 4 { 5 Console.WriteLine("王者荣耀"); 6 7 } 8 } 1 public class Message : App 2 { 3 public override void Run() 4 { 5 Console.WriteLine("短信"); 6 } 7 } ## 三、手机品牌抽象类 ## 1 //手机品牌抽象类 2 public abstract class Brand 3 { 4 protected App soft; 5 public void SetApp(App soft) 6 { 7 this.soft = soft; 8 } 9 public abstract void Run(); 10 } ## 四、具体的手机品牌 ## 1 //华为手机 2 public class Brandhuawei : Brand 3 { 4 public Brandhuawei() 5 { 6 Console.WriteLine("华为手机"); 7 } 8 public override void Run() 9 { 10 soft.Run(); 11 } 12 } 1 //小米手机 2 public class BrandMI : Brand 3 { 4 public BrandMI() 5 { 6 Console.WriteLine("小米手机"); 7 } 8 public override void Run() 9 { 10 soft.Run(); 11 } 12 } ## 五、客户端 ## 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Brand b; 6 b= new Brandhuawei(); 7 b.SetApp(new Game()); 8 b.Run(); 9 b.SetApp(new Message()); 10 b.Run(); 11 12 b = new BrandMI(); 13 b.SetApp(new Game()); 14 b.Run(); 15 b.SetApp(new Message()); 16 b.Run(); 17 18 19 Console.ReadKey(); 20 } 21 } ## 总结 ## 1、**合成/聚合复用原则的好处是**:优先使用对象的合成/聚合有助于保持每个类被封装,并被集中在单个任务上。这样类和类继承层次会保持较小规模,并且不太可能增长为不可控制的庞大的类。 2、实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种对角度分离出来让他们独立变化,减少它们之间耦合。 **参考书籍:**大话设计模式
相关 桥接模式 一、前言 `为什么你的代码那么多ifelse` 同类的业务、同样的功能,怎么就你能写出来那么多`ifelse`。很多时候一些刚刚从校园进入企业的萌新,或者一部分从小公司 绝地灬酷狼/ 2022年10月16日 07:57/ 0 赞/ 6 阅读
相关 桥接模式 1.桥接模式概述 桥接模式是一种很实用的结构型设计模式,如果软件系统中某个类存在两个独立变化的维度,通过该模式可以将这两个维度分离出来,使两者可以独立扩展,让系统更加符合 谁践踏了优雅/ 2022年09月28日 05:48/ 0 赞/ 7 阅读
相关 桥接模式 桥接模式 <?php abstract class Info{ protected $sender = null; r囧r小猫/ 2022年07月21日 01:44/ 0 赞/ 8 阅读
相关 桥接模式 定义 桥接模式:将抽象部分与它实现部分分离,使它们都可以独立地变化。 桥接模式是一种很实用的结构型设计模式,如果软件系统中某个类存在两个独立变化的维度,通过该模式可以将 电玩女神/ 2022年05月14日 10:28/ 0 赞/ 37 阅读
相关 桥接模式 我是在脑壳疼的情况下(今天的工作的量很大,内容很丰富,我很开心,以至于脑壳疼)写下这篇关于桥接模式的文章,不正之处请多指教。 何谓桥接模式,用一座桥连接起来的模式,珠港澳大桥 分手后的思念是犯贱/ 2022年05月08日 17:00/ 0 赞/ 129 阅读
相关 桥接模式 > 本文总结摘自刘伟老师的《设计模式》和程杰老师的《大话设计模式》 1.定义 桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。(桥接模式用关联关系来降低 ╰半橙微兮°/ 2022年01月27日 09:37/ 0 赞/ 246 阅读
相关 桥接模式 前言 1、合成/聚合复用原则,尽量使用使用合成/聚合,尽量不要使用类继承。 2、合成和聚合都是关联的特殊种类。 聚合表示弱的 ‘拥有’ 关系,体现的是A 红太狼/ 2021年12月09日 00:51/ 0 赞/ 55 阅读
相关 桥接模式 桥接模式:是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。 这种模式涉及到一个作 我会带着你远行/ 2021年09月17日 03:34/ 0 赞/ 370 阅读
相关 桥接模式 10.桥接模式 ![70][] class Client { static void Main(string[] arg ╰+攻爆jí腚メ/ 2021年09月16日 23:56/ 0 赞/ 343 阅读
相关 桥接模式 一 概述 现在有一个需求,需要创建不同的图形,并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系: ![在这里插入图片描述][watermark £神魔★判官ぃ/ 2021年07月24日 20:06/ 0 赞/ 499 阅读
还没有评论,来说两句吧...