设计模式之Bridge模式(笔记)

桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立的变化。抽象类和它的派生类用来实现自己的对象。

首先定义一个抽象实现类Implementor

public abstract class Implementor {

    public abstract void operation();
}

接着定义具体2个的实现类继承Implementor类

public class ConcreteImplementA extends Implementor{

    @Override
    public void operation() {
        System.out.println("具体实现A的方法执行");

    }
}

public class ConcreteImplementB extends Implementor{

    @Override
    public void operation() {
        System.out.println("具体实现B的方法执行");

    }
}

然后定义Abstraction抽象类

public abstract  class Abstraction {

    protected Implementor implementor;

    public void setImplementor(Implementor implementor){
        this.implementor=implementor;
    }

    public abstract void operation();
}

接着定义RefinedAbstaction类继承Abstraction

public class RefinedAbstaction extends Abstraction{

    @Override
    public void operation() {
        implementor.operation();
    }
}

客户端代码

     public static void main(String[] args) {
        //桥接模式
        Abstraction abstraction=new RefinedAbstaction();
        abstraction.setImplementor(new ConcreteImplementA());
        abstraction.operation();

        abstraction.setImplementor(new ConcreteImplementB());
        abstraction.operation();
    }
时间: 2024-10-04 12:02:22

设计模式之Bridge模式(笔记)的相关文章

23种设计模式(6)--Bridge模式

面向对象的设计原则:高内聚.低耦合 软件重构原则:小步快跑------抽取的思想(抽取函数.抽取类.抽取接口):对扩展开放.对修改封闭 设计模式分类如下: Bridge模式主要是解决多维度问题,什么意思呢?类似于n*m这个公式,n种抽象的接口,m种具体的实现,最多可以有n*m种组合方式. 下面这篇文章对Bridge模式讲解的通俗易懂,于是转了过来. 学习设计模式也有一段时间了,今天就把我整理的一篇课程和大家分享,有不妥之处欢迎指出. 生活中的一个例子: 就拿汽车在路上行驶的来说.即有小汽车又有公

设计模式之bridge模式

写在之前:设计模式的意义是解决 实际的设计问题,之所以不好理解是因为没有亲身的经历,所以要不停的学习实践思考. bridge翻译为桥接. 既然为桥接 则一定有桥接的两个对象.本文打算从三个方面来分析桥接模式. 1.桥接的两个对象是什么? 2.怎么样进行桥接 3.为什么要使用桥接模式. 1.桥接的两个对象是什么? 首先看桥接模式的定义:将一个类的抽象部分与实现部分分离,使它们都可以独立的变化.从这句话中科一粗略的知道桥接的对象 :一个类的抽象部分和实现部分. 2.为什么要进行桥接: 首先看一下设计

设计模式之Composite模式(笔记)

组合模式:将对象组合成树形结构以表示"部分-总体"的层次结构. 组合模式使得用户对单个对象和组合对象的使用具有一致性. 适用场合:当需求中是体现部分与总体层次的结构时,以及希望用户能够忽略组合对象与单个对象的不同,统一地使用组合结构中的全部对象时,就应该考虑用组合模式. 首先定义一个Componet抽象类 public abstract class Component { protected String name; public Component(String name){ thi

设计模式--桥接(Bridge)模式

1.概述: 桥接模式:把抽象和行为分离开来,中间需要某个介质来连接抽象化和行为化.此模式的概述听起来非常像适配器模式,不要搞混了,虽然都是借用中间介质,但意义不同. 2.例子: 我们哪车子来打比方,比如:车有很多中类型(Bus,Jeep,taxi等),但每个车的引擎又不一样(有2000cc,2200cc)的:现在我们来造车,平常思维是根据车的配置来安装不同的引擎,而我们桥接模式的思维却是根据引擎来造车. 平常思维一: /** *造一个安装了引擎的车类接口 */ package com.msit.

设计模式之代理模式笔记

原文地址:点我 关键点: 静态代理: 实现被代理类的接口 构造注入 动态代理 reflect  高级码农必须深入理解的 扩展知识点 class.forname 使用这个不会产生新的实例, 只是为了加载 链接 初始化(静态) 我们大家一直用的spring 其中强大的功能aop就是基于这 注意点: 动态代理有个强制性要求 被代理的类必须时间了某一个接口, 或者本身就是接口(这个接口的实现类非必要) 三步骤 构造注入 实现invoke 获取代理实例 参数 类加载器 class对象的数组 当前对象 接口

【笔记】设计模式——装饰者模式

实现一个类似QQavator功能的代码 1.原始实现 1 //存在的问题: 2 //1.wear*方法出现重复代码,可以重构:实质上为代码结构一致,输出内容相同,可以通过在定义一个基类,在基类中定义抽象的Wear*,在子类中重写: 3 //2.倘若需求中新增某种服饰,需要修改Person类代码,不符合开放--封闭原则: 4 //3.客户端中代码暴露了具体装饰细节,理想情况下只需要提供装饰顺序,装饰细节封装起来: 5 class Person 6 { 7 private string name;

如何让孩子爱上设计模式 ——10.桥接模式(Bridge Pattern)

如何让孩子爱上设计模式 --10.桥接模式(Bridge Pattern) 我有故事,你有酒吗?这年头写个技术文不讲个故事都不行,行,我讲: 还有发现很多的技术博文都开始有喜欢往文中插入几个表情的趋势了, 但是你真的插的姿势对了吗?这种事情不是随便插的,来来来,给你 见识下如何在适当的场景插入适当的表情以让读者感觉到易可赛艇, 本文以讲故事插表情为主,讲述桥接模式为辅,多图预警, 简书上排版可能有些问题,最佳排版可见: https://www.zybuluo.com/coder-pig/note

设计模式---装饰者模式(学习笔记)

首先看装饰者模式的定义:动态的将责任附加到对象上.若要扩展功 能,装饰者提供了比继承更有弹性的替代方案! 先看看<大话设计模式>给出的类图: 实际上,装饰者模式就是:把装饰者对象当成"包装者",换言之,把要装饰的对象作为参数传递到装饰对象里去,然后进行操作.(如果理解不对,希望给指正),下面看代码来理解这个类图: 这是装饰者和需要装饰的具体对象共同的接口: public abstract class Component { abstract void Operation()

设计模式(java)--Bridge模式

转自:吕震宇 http://www.cnblogs.com/zhenyulu/articles/67016.html#!comments 我想大家小时候都有用蜡笔画画的经历吧.红红绿绿的蜡笔一大盒,根据想象描绘出格式图样.而毛笔下的国画更是工笔写意,各展风采.而今天我们的故事从蜡笔与毛笔说起. 设想要绘制一幅图画,蓝天.白云.绿树.小鸟,如果画面尺寸很大,那么用蜡笔绘制就会遇到点麻烦.毕竟细细的蜡笔要涂出一片蓝天,是有些麻烦.如果有可能,最好有套大号蜡笔,粗粗的蜡笔很快能涂抹完成.至于色彩吗,最