设计模式笔记——桥接

作者: ShaDe_r | 来源:发表于2017-08-20 18:19 被阅读0次

欢迎转载,共同进步。请注明出处:http://www.jianshu.com/u/e627f27f75b7
我们在设计某个类的时候,如果这个类存在两个维度的变化,一个维度为AB,一个维度为12,可以组合成A1,A2,B1,B2,在这种情况下,如果直接用一个类来实现的话,只要其中一个维度新增一种类型,比如新出现了3,就需要新创建A3和B3两个类,修改成本太高,而且随着维度内容的增加,修改的成本也越来越高。
桥接模式就是将这两个维度分离出来,独立发展,并且在最上层建立一个联系,使两个维度在最上层组合起来。如:
抽象一个维度为字母,另一个维度为数字。伪代码如下:
字母维度基类

class WordBase{
    NumBase num;
    public void SetNum(NumBase num){
        this.num = num;
    }
    public virtual void Handle();
}

数字维度基类

class NumBase(){
    public virtual void Handle();
}

继承基类

class A : WordBase{
    public override void Handle(){
        print("A");
        num.Handle();
    }
}

class One : NumBase{
    public override void Handle(){
        print("1");
    }
}

桥接起来

void Main(){
    WordBase a = new A();
    NumBase one = new One();
    a.SetNum(one);
    a.Handle();
}

结果为 A1

如果新增一个类Two,则只需要新增类Two即可,而不需要修改字母维度的东西,再新增一个类B,也不需要修改数字维度。

具体应用场景

设计职业类的时候,可以分一个门派维度和一个攻击类型维度,每个门派都可以有多种攻击类型,物理攻击,法术攻击,幻术攻击等等,门派就类似于上面的字母维度,而攻击类型就类似于数字维度,具体的两个维度的联系与合作就需要在最上层抽象出一个合适的连接。

文章如有错误,欢迎指正

相关文章

  • Decorator 装饰模式

    设计原则学习笔记 设计模式学习笔记 作用 动态的给一系列类添加新的属性以及操作。装饰模式和桥接模式有点像,桥接模...

  • java/android 设计模式学习笔记(8)---桥接模式

    java/android 设计模式学习笔记(8)---桥接模式 【备注】只用于个人收藏

  • 桥接模式

    慕课网笔记 —桥接模式(Bridge Pattern) 维基百科 桥接模式是软件设计模式中最复杂的模式之一,它把事...

  • 设计模式笔记——桥接

    欢迎转载,共同进步。请注明出处:http://www.jianshu.com/u/e627f27f75b7我们在设...

  • 手撸golang 结构型设计模式 桥接模式

    手撸golang 结构型设计模式 桥接模式 缘起 最近复习设计模式拜读谭勇德的<<设计模式就该这样学>>本系列笔记...

  • 桥接模式

    设计模式:桥接模式(Bridge)

  • 设计模式-桥接模式

    设计模式-桥接模式 定义 桥接模式(Bridge Pattern)也称为桥梁模式、接口(Interface)模式或...

  • 设计模式——桥接模式

    设计模式——桥接模式 最近公司组件分享设计模式,然而分配给我的是桥接模式。就在这里记录我对桥接模式的理解吧。 定义...

  • 设计模式之桥接模式

    设计模式之桥接模式 1. 模式定义 桥接模式又称柄体模式或接口模式,它是一种结构性模式。桥接模式将抽象部分与实现部...

  • Java设计模式<桥接模式>

    Java设计模式<桥接模式> 意图 桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将...

网友评论

    本文标题:设计模式笔记——桥接

    本文链接:https://www.haomeiwen.com/subject/hmgfdxtx.html