桥接模式 订阅
桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interfce)模式。 展开全文
桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interfce)模式。
信息
别    称
柄体模式、接口模式
运用领域
软件系统
类    别
计算机术语
释    义
将抽象部分与它的实现部分分离,使它们都可以独立地变化
中文名
桥接模式
性    质
是一种对象结构型模式
桥接模式概述
在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用Bridge模式。 [1] 
收起全文
精华内容
下载资源
问答
  • 桥接模式

    万次阅读 2020-12-26 10:19:56
    桥接模式桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式, 又称为柄体(Handle and Body)模式或接口(Interfce)模式。 传统多继承结构 桥接模式 //品牌 public ...

    桥接模式

    ◆桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式, 又称为柄体(Handle and Body)模式或接口(Interfce)模式。

    传统多继承结构
    在这里插入图片描述
    桥接模式
    在这里插入图片描述

    //品牌
    public interface Brand {
        void info();
    }
    
    
    
    //联想品牌
    public class Lenovo implements Brand{
        @Override
        public void info() {
            System.out.println("联想");
        }
    }
    
    
    //苹果品牌
    public class Apple implements Brand{
        @Override
        public void info() {
            System.out.println("苹果");
        }
    }
    
    
    //抽象的电脑类型
    public class Computer {
        //组合品牌
        protected Brand brand;
        public Computer(Brand brand) {
            this.brand = brand;
        }
        public void info(){
        brand.info(); //再带品牌
        }
    }
    class Desktop extends Computer{
    
        public Desktop(Brand brand) {
            super(brand);
        }
        @Override
        public void info(){
            super.info();
            System.out.println("台式机");
        }
    }
    
    class Laptop extends Computer{
    
        public Laptop(Brand brand) {
            super(brand);
        }
        @Override
        public void info(){
            super.info();
            System.out.println("笔记本");
        }
    }
    
    
    public class Test {
        public static void main(String[] args) {
            // 苹果笔记本
            Computer computer = new Laptop(new Apple());
            computer.info();
            //联想台式机
    
            Computer computer1 = new Desktop(new Lenovo());
            computer1.info();
        }
    }
    
    

    在这里插入图片描述
    ◆好处分析:

    • 桥接模式偶尔类似于多继承方案,但是多继承方案违背了类的单一职责原则,复用性比较差, .类的个数也非常多,桥接模式是比多继承方案更好的解决方法。极大的减少了子类的个数,从而降低管理和维护的成本
    • 桥接模式提高了系统的可扩充性,在两个变化维度中任意扩展一个维度, 都不需要修改原有系统。符合开闭原则,就像: - -座桥,可以把两个变化的维度连接起来!

    ◆劣势分析:

    • 桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程。
    • 桥接模式要求正确识别出系统中两个独立变化的维度,因此其使用范围具有一定的局限性。

    最佳实践:

    • 如果一个系统需要在构建的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承联系,通过桥接模式可以使它们在抽象层建立-个关联关系。抽象化角色和实现化角色可以以继承的方式独立扩展而互不影响,在程序运行时可以动态将一个抽象化子类的对象和一 个实现化子类的对象进行组合,即系统需要对抽象化角色和实现化角色进行动态耦合。
    • 一个类存在两个独立变化的维度, 且这两个维度都需要进行扩展。
    • 虽然在系统中使用继承是没有问题的,但是由于抽象化角色和具体化角色需要独立变化,设计要求需要独立管理这两者。对于那些不希望使用继承或因为多层次继承导致系统类的个数急剧增加的系统,桥接模式尤为适用。

    场景:
    ◆Java语言通过Java虚拟机实现了平台的无关性。
    ◆AWT中的Peer架构
    ◆JDBC驱动程序也是桥接模式的应用之一。

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,356
精华内容 9,342
热门标签
关键字:

桥接模式