java设计模式 GOF23 07 桥接模式

一.桥接模式简介

因为java是单继承结构,在面对多重维度关系的时候只能使用多层继承,

但是多层继承违背了单一职责原则,复用性差,类的个数也非常多。

所以需要使用桥接模式将各个维度设计成独立的继承结构。从而减少子类的个数

和见底管理维护的成本。桥接模式极大的提高了系统的可扩展性,在两个变化维度中任意宽展一个维度,都不需要修改原有的系统,符合开闭原则。

二.应用场景

  1).JDBC驱动程序

  2).银行的日志管理

    两个维度:格式分类,距离分类

  3).人力资源中的奖金计算

    两个维度:奖金分类,部门分类

  4).OA系统的消息处理

    业务类型:普通消息,加急消息,特急消息

    发送消息方式:系统内消息,手机短信,邮件

三.简单代码实现

package com.lz.bridge;

/*
 * 电脑品牌接口,一个维度
 */

public interface Brand {
    void info();
}

class Dell implements Brand {

    @Override
    public void info() {
        System.out.print("品牌:戴尔");
    }
    
}

class Apple implements Brand {

    @Override
    public void info() {
        System.out.print("品牌:苹果");
    }
    
}
package com.lz.bridge;

/*
 * 电脑类型,另一个维度
 */

public abstract class Cpu {
    protected Brand brand;

    public Cpu(Brand brand) {
        super();
        this.brand = brand;
    }
    public void Info() {
        brand.info();
    }
    
}

class DeskTop extends Cpu {

    public DeskTop2(Brand brand) {
        super(brand);
    }
    
    @Override
    public void Info() {
        super.Info();
        System.out.println("台式机");
    }
    
}

class NoteBook extends Cpu {

    public NoteBook2(Brand brand) {
        super(brand);
    }
    
    @Override
    public void Info() {
        super.Info();
        System.out.println("笔记本");
    }
    
}

 

你可能感兴趣的:(java设计模式 GOF23 07 桥接模式)