【C#】桥接模式

来源:互联网 发布:socket java 长连接 编辑:程序博客网 时间:2024/06/10 03:24

桥接模式:它是一种非常重要的软件设计模式,它的作用是:将抽象部分与实现部分分离,使它们可以互相独立的变化。

开放—封闭原则:简单的说就是,使软件可以扩展,但是不可以修改,就是说软件可以添加功能但是不改变源代码。

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


今天借桥接模式的例子来理解一下桥接模式,以及开放-封闭原则、合成/聚合原则,那么下面大家先看一下下面这个例子


First 桥接模式

    在上述例子中,手机可以用品牌来分类,也可以用功能来分类,所以它的实现方式多种多样,也就是说各自可以独立的变化,这就是桥接模式的核心。

Second  开发-封闭原则

    上面说过,开闭原则就是允许扩展不允许修改,再看上面这个例子,我们可以随意的添加游戏功能类,比如添加一个视频播放功能:

class HandsetVideoPlayer :HandsetSoft
{
    public override void Run()
    {
        Console.WriteLine("运行视频播放")
    }
}
只要添加这段代码就可以,完全不需要对源代码做任何修改,即符合了开放-封闭原则。

Third  合成/聚合复用原则

    在上述例子中,手机品牌包含有手机软件,但软件不是品牌的一部分,所以属于聚合关系,所以在手机软件类中实现手机软件类的通信,这就是合成/聚合复用原则的小应用。
    因为继承属于强耦合,在某些时候有可能会形成庞大的代码量。比如上述例子中,如果手机软件继承手机品牌的话,那每添加一个手机品牌就需要重新写一次手机软件的功能,而这就会影响代码的灵活性,也会增加不必要的代码量;而合成/聚合复用好处是有助于保持每个对象的封装,并被集中在单个任务上,这样类和类继承层次会保持在较小规模,不太可能形成庞然大物。
    当然了,也不是说什么时候都要用这个原则,比如让具体功能继承手机软件类就非常好,如果换成合成/聚合原则,可能会一团糟,我们要慢慢学习在最合适的时候使用最合适的设计模式。

好了,本次博客到此结束,欢迎大家提出宝贵的意见和建议。

0 0