BridgePattern(桥接模式)

/**
 * 桥接模式
 * @author TMAC-J
 * 应用于多维度方案
 * 用组合的形式代替继承
 * 符合单一职责原则
 * 一个类只有一个引起他变化的原因
 * 增加程序灵活性
 */
public class BridgePattern {

    abstract class Road{
        Car car;
        void run(){};
    }

    abstract class Car{
        void showMyName(){};
    }

    public class Street extends Road{
        public void run(){
            car.showMyName();
            System.out.println("在街道上上奔驰");
        }
    }

    public class SpeedRoad extends Road{
        public void run(){
            car.showMyName();
            System.out.println("在高速路上奔驰");
        }
    }

    public class Bus extends Car{
        public void showMyName(){
            System.out.println("公交车");
        }
    }

    public class SedanCar extends Car{
        public void showMyName(){
            System.out.println("轿车");
        }
    } 

    public void test(){
        Street street = new Street();
        street.car = new Bus();
        street.run();//输出结果为公交车在街道上奔驰
        SpeedRoad speedRoad = new SpeedRoad();
        speedRoad.car = new SedanCar();
        speedRoad.run();//输出结果为轿车在高速路上奔驰
    }

}
时间: 2024-10-10 00:05:23

BridgePattern(桥接模式)的相关文章

[Unity 设计模式]桥接模式(BridgePattern)

1.前言 继上一讲IOC模式的基础上继续本讲桥接模式,笔者感觉桥接模式是23种设计模式中桥接模式是最好用但也是最难理解的设计模式之一,23中设计模式就好武侠剧中一本武功秘籍,我们在工作过程中想要熟练运用其中的每一种设计模式就好比跟高手过招想要能运用好武侠秘籍中的每一招每一式,并且能随着对手出招的不同我们能随机应变对应的招数,这就要求我们对每一种设计模式都理解的非常深刻才能运用自如,打出组合拳的效果. 2.需求 我们在FPS类游戏中会碰到这样的需求——实现武器和角色,无论是敌人还是我方角色都能通过

结构化设计模式-桥接模式

桥接模式目的:将抽象的对象,和具体的实现相分离,同时使用组合代替继承(很有用的设计模式,符合单一职责,开闭等原则). 桥接模式对象 Bridge-pattern Abstraction,抽象类:抽象化给出的定义,并保存对实例化对象的引用 RefinedAbstraction,扩充抽象类:扩充抽象化角色,改变和修正父类对抽象化定义 Implementor,实现接口类:这个角色给出实现化角色的接口,不给出具体实现.这个接口和抽象话接口不相同,这个接口给出底层的实现操作定义,而抽象化接口给出类基本或上

设计模式—桥接模式

桥接模式:具有依赖关系的对象可以灵活的进行随意组合. 实例说明:人开车在路上跑. 能够自由组合人.车和路来实现各种情景 就像不知道1+1为什么等于2 一样,我也不知道为什么要使用桥接模式.可以解耦吧?不需要在person中new Car不需要在Car中new Road. 只需要在调用处注入三个对象便可实现随意组合. 定义抽象类:Road package com.zpj.designMode.bridgePattern; /** * @author PerKins Zhu * @date:2016

桥接模式-挣钱的设计模式。

前言: 写了N多年代码,知道设计模式已经有8,9年了,用过设计模式,有一些又很好的用处.但是也有一些是不应该存在的设计模式. 从这里开始: 桥接模式 1.作用: 将一个抽象与实现解耦,以便两者可以独立的变化.(摘自wiki) 2.UML 3.代码: /** "Implementor" */ interface DrawingAPI { public void drawCircle(double x, double y, double radius); } /** "Concr

漫谈设计模式--3分钟理解桥接模式:笔和画的关系

其实不需要3分钟,3秒钟就够了,记住桥接模式就是如此简单:一句话,笔有千般形,画有万变化. 下面的仅仅助于理解. 1. 定义 The bridge pattern is a design pattern used in software engineering which is meant to "decouple an abstraction from its implementation so that the two can vary independently" From Wi

Head First设计模式之桥接模式

一.定义 桥接模式(Bridge Pattern),将抽象部分与它的实现部分分离,使的抽象和实现都可以独立地变化. 主要解决:在多维可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活. 何时使用:实现系统可能有多个角度分类,每一种角度都可能变化. 如何解决:把这种多角度分类分离出来,让它们独立变化,减少它们之间耦合. 注意事项:对于两个独立变化的维度,使用桥接模式再适合不过了. 二.结构 三.实现 一般写法 namespace DesignPatterns.Bridge { class

桥接模式和适配器模式

桥接模式 https://www.w3cschool.cn/shejimoshi/bridge-pattern.html 桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化.这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦. 意图:将抽象部分与实现部分分离,使它们都可以独立的变化. 主要解决:在有多种可能会变化的情况下,用继承会造成类爆炸问题,扩展起来不灵活. 何时使用:实现系统可能有多个角度分类,每一种角度都可能变化. 如何解决:把这

一天一个设计模式——Bridge桥接模式

一.概念准备 在理解桥接模式之前,先要理解面向对象程序设计中的两个概念: 类的功能层次结构:假设现在有一个类Something,这个类有一些成员属性和成员方法,但是现有的功能不能满足要求,因此我们想扩展这个类,给这个类创建一个子类SomethingBetter来继承它,并在子类中添加更多属性和方法.像这样不同的功能位于不同的类继承结构中,就构成了类的功能层次结构. 类的实现层次结构:回顾一下抽象类的作用,抽象类声明抽象方法(定义了方法接口API),然后在继承它的子类中实现相关方法.由于我们将方法

iOS设计模式之桥接模式

一,什么是桥接模式 定义 抽象出层次结构.上层抽象接口的职能,实现上层抽象接口的职能,层级间的通信协议(可以抽象为接口).桥接模式的目的,就是把抽象层次结构从具体的实现中分离出来,使其能够独立变更.抽象层次定义了供客户端使用的上层抽象接口.实现结构定义了供抽象层使用的底层接口.实现类的引用被封装到控制类抽象层的实例中,桥接就形成了. 使用场景游戏机模拟器.H5混编解决方案 二,桥接模式结构图 实现步骤: 创建控制类基类,并定义变量持有具体实现类基类对象关系. 创建控制类基类子类,和实现类基类,并