定义:
将实现和抽象解耦,从而达到抽象和实现可以各自演变
说人话:
如果一个抽象的子类有多种维度的演变方式,比如“人”作为抽象,它可以由性别、人种、年龄等等维度的演变,以至于我们用常规方法定义子类会产生大量的子类,比如“男人”,“女人”,“黄种人”,“黑种人”,“白种人”,“儿童”,“少年”,“青年”,“中年”,“老年”,甚至“白种中年男人”这样的类。这对编程人员来说这将是一个灾难。
于是设计大师设计了这么个桥接模式。但是这个模式很有可能是个伪模式,它在形式上同策略模式没有任何区别。
他们的用处也许就是告诉你当你遇到多维度演变问题时,你可以把子类行为化,从而求助策略模式。下面我们看上面的问题怎么解决。
通过将各个维度变量引起的变化抽象成一个实现接口(肤色实现器或者眉眼间距实现器),那么我们就可以将变化维度从抽象中剥离。
通过上图我们可以看到,UML结构同策略模式一模一样。