08-桥接模式

08-桥接模式

1.桥接模式

/**
 * 桥接模式可以将M*N的继承关系简化为M+N中组合关系。
 * 如汽车Car的天窗SunProof有M中选择,轮毂Hub有N中选择,
 * 如果使用继承则需要M*N中继承关系,但是通过组合可以简化为M+N中组合关系。
 */
public class Car {

    private SunProof sunProof;
    private Hub hub;
    public Car(SunProof sunProof, Hub hub) {
        this.sunProof = sunProof;
        this.hub = hub;
    }
}

// 汽车天窗
class SunProof {

}

// 汽车轮毂
class Hub {

}

2.桥接模式总结

  1. <<设计模式:可复用面向对象软件的基础>>一书中对桥接模式的定义:将抽象和实现解耦,让它们可以独立变化。

  2. 桥接模式更通俗易懂的定义:一个类存在两个(或多个)独立变化的维度,可以通过组合的方式,让这个类在两个(多个)维度上可以独立扩展。

  3. 桥接模式可以将M*N中不同的选择方案,通过组合的方式简化为M+N中组合。

  4. 日志框架SLF4J有三个核心的概念:Logger、Appender和Formatter,分别表示三种不同的维护。Logger表示记录哪个类的日志;Appender表示日志输出到哪里;Formatter表示日志记录的格式。三个维度有多种不同的实现。利用桥接模式,可以将三种维度的任意一种实现组合在一起,就对应一种日志记录方式。同时三个维度可以独立变化,互不影响。

posted @ 2022-11-27 08:49  行稳致远方  阅读(31)  评论(0)    收藏  举报