【C#】桥接模式
来源:互联网 发布:socket java 长连接 编辑:程序博客网 时间:2024/06/10 03:24
桥接模式:它是一种非常重要的软件设计模式,它的作用是:将抽象部分与实现部分分离,使它们可以互相独立的变化。
开放—封闭原则:简单的说就是,使软件可以扩展,但是不可以修改,就是说软件可以添加功能但是不改变源代码。
合成/聚合复用原则:尽量使用合成/聚合,尽量不要使用类继承。
今天借桥接模式的例子来理解一下桥接模式,以及开放-封闭原则、合成/聚合原则,那么下面大家先看一下下面这个例子
First 桥接模式
在上述例子中,手机可以用品牌来分类,也可以用功能来分类,所以它的实现方式多种多样,也就是说各自可以独立的变化,这就是桥接模式的核心。
Second 开发-封闭原则
上面说过,开闭原则就是允许扩展不允许修改,再看上面这个例子,我们可以随意的添加游戏功能类,比如添加一个视频播放功能:
class HandsetVideoPlayer :HandsetSoft
{
public override void Run()
{
Console.WriteLine("运行视频播放")
}
}
只要添加这段代码就可以,完全不需要对源代码做任何修改,即符合了开放-封闭原则。
Third 合成/聚合复用原则
在上述例子中,手机品牌包含有手机软件,但软件不是品牌的一部分,所以属于聚合关系,所以在手机软件类中实现手机软件类的通信,这就是合成/聚合复用原则的小应用。
因为继承属于强耦合,在某些时候有可能会形成庞大的代码量。比如上述例子中,如果手机软件继承手机品牌的话,那每添加一个手机品牌就需要重新写一次手机软件的功能,而这就会影响代码的灵活性,也会增加不必要的代码量;而合成/聚合复用好处是有助于保持每个对象的封装,并被集中在单个任务上,这样类和类继承层次会保持在较小规模,不太可能形成庞然大物。
当然了,也不是说什么时候都要用这个原则,比如让具体功能继承手机软件类就非常好,如果换成合成/聚合原则,可能会一团糟,我们要慢慢学习在最合适的时候使用最合适的设计模式。
好了,本次博客到此结束,欢迎大家提出宝贵的意见和建议。
0 0
- 【C#】桥接模式
- 设计模式_桥接模式(C++)
- C#--设计模式之桥接模式
- 【C++】Chapter18:桥接模式
- Objective C--桥接模式
- Objective C--桥接模式
- Objective C桥接模式
- 乐在其中设计模式(C#) - 桥接模式(Bridge Pattern)
- C语言和设计模式(桥接模式)
- C语言和设计模式(桥接模式)
- C语言和设计模式(桥接模式)
- C语言和设计模式(桥接模式)
- 08.C语言和设计模式(桥接模式)
- 19、C语言和设计模式(桥接模式)
- 设计模式——桥接模式(C++)
- C语言设计模式:代理模式、桥接与中介模式 //tbd
- <设计模式可复用面向对象软件的基础> [2.2]、桥接模式(C#)
- C语言和设计模式(桥接模式) 【文章都是来自网络,只要自己吸取了就是自己的】
- Hello World !
- 【Flask】关于Flask-Admin的一些坑及避开技巧
- 用闭包实现高级排他
- [Linux]生产者与消费者 三种模型 C
- 学习C 的第四天
- 【C#】桥接模式
- 面向服务的架构SOA
- 属性动画入门
- 【JDBC】数据库事务
- Get-GUIDandDeclare
- 请求重定向和请求转发
- 说话习惯
- 【code force】模拟 746C
- 零行代码为 App 添加异常加载占位图