java设计模式_桥接模式

来源:互联网 发布:网络主播行业调查分析 编辑:程序博客网 时间:2024/05/18 22:56

一、什么是桥接模式

 Bridge 模式又叫做桥接模式,是构造型的设 计模式之一。Bridge模式基于类的最小设计原则,通过 使用封装,聚合以及继承等行为来让不同的类承担不同 的责任。它的主要特点是把抽象(abstraction)与行为

实现(implementation)分离开来,从而可以保持各部 分的独立性以及应对它们的功能扩展。

二、桥接模式的结构

这里写图片描述

三、桥接模式的角色和职责

Client
Bridge模式的使用者 Abstraction
抽象类接口(接口或抽象类)
维护对行为实现(Implementor)的引用 Refined Abstraction
Abstraction子类 Implementor
行为实现类接口 (Abstraction接口定义了基于Implementor接口的更高层次的操作) ConcreteImplementor
Implementor子类

//示例1:/* * 汽车 */public interface Car {    void installEngine();}public abstract class Bus implements Car {    @Override    public abstract void installEngine();}public class Bus2000 extends Bus {    @Override    public void installEngine() {        System.out.println("bus安装2000cc发动机");    }}public class Bus2200 extends Bus {    @Override    public void installEngine() {        System.out.println("bus安装2200cc发动机");    }}public abstract class Jeep implements Car {    @Override    public abstract void installEngine() ;}public class Jeep2000 extends  Jeep {    @Override    public void installEngine() {        System.out.println("jeep安装2000cc发动机");    }}public class Jeep2200 extends  Jeep {    @Override    public void installEngine() {        System.out.println("jeep安装2200cc发动机");    }}public class MainClass {    public static void main(String[] args) {        Car car1 = new Bus2000();        car1.installEngine();    }}//bus安装2000cc发动机//示例2:/* * 汽车 */public interface Car {    void install2000Engine();    void install2200Engine();    void install2300Engine();}public class Bus implements Car {    @Override    public void install2000Engine() {        System.out.println("bus安装2000发动机");    }    @Override    public void install2200Engine() {        System.out.println("bus安装2200发动机");    }    @Override    public void install2300Engine() {        System.out.println("bus安装2300发动机");    }}public class MainClass {    public static void main(String[] args) {        Car car1 = new Bus();        car1.install2000Engine();    }}//bus安装2000发动机//示例3:public interface Engine {    void installEngine();}public class Engine2000 implements Engine {    @Override    public void installEngine() {        System.out.println("安装2000发动机");    }}public class Engine2200 implements Engine {    @Override    public void installEngine() {        System.out.println("安装2200发动机");    }}public abstract class Car {    protected Engine engine;    public Car(Engine engine)    {        this.engine = engine;    }    public abstract void installEngine();}public class Bus extends Car {    public Bus(Engine engine) {        super(engine);    }    @Override    public void installEngine() {        System.out.print("bus汽车安装:" );        engine.installEngine();    }}public class Jeep extends Car {    public Jeep(Engine engine) {        super(engine);    }    @Override    public void installEngine() {        System.out.print("jeep汽车安装:" );        engine.installEngine();    }}public class MainClass {    public static void main(String[] args) {        Engine engine2000 = new Engine2000();        Engine engine2200 = new Engine2200();        Car bus1 = new Bus(engine2000);        bus1.installEngine();        Car bus2 = new Bus(engine2200);        bus2.installEngine();        Car jeep1 = new Jeep(engine2000);        jeep1.installEngine();        Car jeep2 = new Jeep(engine2000);        jeep2.installEngine();    }}//bus汽车安装:安装2000发动机//bus汽车安装:安装2200发动机//jeep汽车安装:安装2000发动机//jeep汽车安装:安装2000发动机
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 高铁票未取误点怎么办 飞猪上12306占座失败怎么办? 新生儿肚脐还没有脱落发炎怎么办 蹲坑被纸巾堵了怎么办 老公有外遇老婆不想离婚怎么办 结婚十年妻子出轨该怎么办 初生儿眼睛多眼屎怎么办 被丝袜脚摩擦过瘾了怎么办 老公在卧室装摄像头怎么办 听了鬼故事害怕怎么办 看完鬼片害怕睡不着怎么办 晚上看了鬼片怎么办 说话不经过大脑考虑怎么办 我太受欢迎了怎么办动漫结局 狗胃不好总呕吐怎么办 比格犬晚上叫怎么办 玻尿酸隆鼻变宽了怎么办 打玻尿酸鼻子变宽怎么办 鼻炎的人感冒了怎么办 小孩上幼儿园反复感冒怎么办 3岁宝宝感冒鼻炎怎么办 鼻炎犯了鼻子不通气怎么办 食物呛到鼻子里怎么办 胃疼引起的焦虑怎么办 泰迪犬发生口腔亏痒怎么办? 俩鼻子都堵了怎么办 2岁宝宝鼻甲肿大怎么办 感冒10多天不好怎么办 宝妈鼻炎犯了怎么办 鼻炎犯了好多黄鼻涕怎么办 空调吹多了上火怎么办 宝宝感冒鼻塞流鼻涕口臭怎么办 怀孕了有鼻息肉怎么办 孕晚期鼻炎犯了怎么办 孕妇鼻炎犯了头疼怎么办 一岁宝宝有鼻炎怎么办 蒸馒头的面酸了怎么办 dnf点券充错账号了怎么办 英雄联盟点券充错区了怎么办 文玩鼻烟壶盖子松了怎么办 文胸磨腋下的肉怎么办