桥接、组合、装饰模式

桥接模式:

将抽象部分与其显示部分分离,使他们都可以独立地变化。

和中继器模式:

       中继模式,就是利用无线路由器之间的无线连接功能,将无线信号从一个中继点传递到下一个中继点,实现信号的增强,并形成新的无线覆盖区域,最终达到延伸无线网络的覆盖范围的目的。

       事实上,只要有两台支持中继功能的无线路由器,即可拓展网络覆盖范围。

中继和桥接功能对于无线用户的实际使用基本上是一样的,只是设备有所不同,并非所有无线路由器都可以桥接,无线路由桥接就是把无线路由器当中继器使用。桥接并非无线路由器的主要功能。使用中继模式时,网络SSID号均一致,而在桥接模式时,网络SSID号不同。

 

和策略模式:

      相对策略模式,桥接模式要表达的内容要更多,结构也更加复杂。

桥接模式表达的主要意义其实是接口隔离的原则,即把本质上并不内聚的两种体系区别开来,使得它们可以松散的组合,

     而策略在解耦上还仅仅是某一个算法的层次,没有到体系这一层次。

    从结构图中可以看到,策略的结构是包容在桥接结构中的,桥接中必然存在着策略模式

https://zhidao.baidu.com/question/305602100407159564.html

 

优点:  

1.解耦:分离了抽象接口和实现部分,将多个维度转化为各自独立的维度。

2.多个子类继承父类,当其中某一个子类添加新功能时,可以不更改子类,桥接模式间接的的实现了在C#中不可以实现多重继承的的缺陷。

      3.提高系统扩展性,维度独立化,可以扩展任意维度,不需要对原有系统进行大规模修改,符合类开闭原则。

缺点:  

不容易区分两大维度,使用范围具有局限性。

适用场景:  

1.抽象部分和实现部分可以继承的方式独立,相互不影响。或者说一个类具有多个独立并且变化的维度

      2.可以打破C#中,子类无法实现多重继承的缺陷。

组合模式:

将对象组合成树型接口以表示“部分——整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。

优点:  

 

1.可详细的定义分层次的复杂对象,用户可以忽略层次的差异。

2.基本对象可以被组合成复杂组合对象,这个组合对象也可以被组合,这样不断递归,客户端调用基本对象的地方都可以使用组合对象。

3.方便将新的叶子构件放入容器构件中。

缺点:  

层次关系的出现使得设计复杂。

适用场景:  

表示一个对象整体—部分的层次结构。

 

装饰模式:

动态地给一个对象添加一些额外的职责。就增加功能而言,Decorato模式比生成子类更加灵活。

优点:  

     1.把类中的装饰功能从类中搬移去除,这样可以简化原有的类。(有效的把类的核心职责和装饰功能区分开了)。

     2.而且可以去除相关类中重复的装饰逻辑)

缺点:        

如果装饰的对象过多,就会造成更多的系统资源被占用,装饰要适当。

适用场景:        

动态的给某一个对象增加职能,如果继承不方便扩展对象职能,装饰着模式会更加灵活。

组合和装饰模式的区别:

组合模式是一个树形的结构,有叶子节点,有树枝节点,树枝下面还可以有叶子。

而装饰者模式是一个俄罗斯套娃的结构,外层套内层,不断的进行装饰。区别还是蛮明显的。他们有一个共同点就是所有的类都继承自同一个抽象类(或者对象)。

发布了138 篇原创文章 · 获赞 40 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_39332529/article/details/102254364
今日推荐