0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

桥接模式的目标与设计

冬至子 来源:全栈开发的码农 作者:全栈开发的码农 2023-06-01 14:29 次阅读

桥接模式的目标是使对象的抽象部分与实现部分分离,使之可以分别独立变化,以尽量避免产生耦合

下图以绘制圆形为例:圆形的颜色通过接口类DrawAPI及其2个实现类RedCircle以及GreenCircle实现;圆形的坐标以及半径通过抽象类及其扩展类实现,在实现draw()方法时,直接使用DrawAPI类中的相关对象的drawCircle方法。

图片

DrawAPI接口类:

package bridge;
public interface DrawAPI {
  public void drawCircle(int radius, int x, int y);
}

RedCircle实现类:

package bridge;
public class RedCircle implements DrawAPI{
  @Override
  public void drawCircle(int radius, int x, int y) {
    System.out.println("画红色圆,半径"+radius+",坐标:x="+x+",y="+y);
  }
}

GreenCircle实现类:

package bridge;
public class GreenCircle implements DrawAPI{
  @Override
  public void drawCircle(int radius, int x, int y) {
    System.out.println("画绿色圆,半径"+radius+",坐标:x="+x+",y="+y);  
  }
}

Shape抽象类:

package bridge;
public abstract class Shape {
  protected DrawAPI drawAPI;
  protected Shape(DrawAPI drawAPI) {
    this.drawAPI=drawAPI;
  }
  public abstract void draw();
}

Circle扩展类:

package bridge;
public class Circle extends Shape{
  int x, y, radius;
  public Circle(DrawAPI drawAPI,int x,int y,int radius) {
    super(drawAPI);
    this.x=x;
    this.y=y;
    this.radius=radius;
  }
  @Override
  public void draw() {
    drawAPI.drawCircle(radius, x, y);
  }
}

主函数调用方式:

package main;
import bridge.*;
public class BridgePattern {
  public static void main(String[] args) {
    Shape redCircle =new Circle(new RedCircle(),10,10,5);
    Shape greenCircle = new Circle(new GreenCircle(),20,20,6);
    redCircle.draw();
    greenCircle.draw();
  }
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 耦合器
    +关注

    关注

    8

    文章

    671

    浏览量

    59260
  • API接口
    +关注

    关注

    1

    文章

    79

    浏览量

    10315
收藏 人收藏

    评论

    相关推荐

    关于模式遇到的问题

    VMware使用模式,已经手动设置ip地址和主机ip同一网段,但是ifconfig显示的ip地址却和vmnet8(NAT)同一网段?怎么解决?
    发表于 10-16 15:06

    设置了网络模式但连不通怎么回事

    设置了网络模式 就是连不通
    发表于 05-04 05:55

    CentOS静态IP配置(模式

    [2018-08-26]-[CentOS]CentOS静态IP配置(模式
    发表于 05-12 08:27

    数字信号处理器代码生成的地址分配自适应遗传算法

    摘要:为了高质量地生成对数字信号处理器自增/减间接寻址模式目标代码,提出了地址分配自适应遗传算法.该算法的核心思想为:对地址分配方案进行二进制编码,适应度函数通过地址寄存器变化轨迹的非邻接标记之和的倒数来计算,再通过自适应策略对适应度高的
    发表于 03-01 00:32 80次下载

    嵌入式实时操作系统设计方案

    本文提出了一种航空电子嵌入式实时操作系统(A-RTOS,Avionics RTOS)的一种设计思路,并在具有MMU和支持高级保护模式目标板上完成了实现。
    发表于 11-21 11:43 1046次阅读
    嵌入式实时操作系统设计方案

    雷军:5年内做到印度市场份额第一!印度成为小米的主战场

     导语:在中国千元机市场饱和的情况下,国内失宠的小米已不满足国内这块蛋糕,在印度也开始大力布局,更是要复制国内生态链模式目标做到印度市场第一。
    发表于 03-17 11:14 462次阅读

    启动模式配置lc823450系列音频应用

    介绍 此应用说明说明程序确定开机装置、开机模式以及如何控制开机开发阶段模式目标受众是建设音频的客户使用lc823450系列应用(称为lc823450以下)。 背景 启动模式 lc8
    发表于 03-29 17:08 10次下载
    启动<b class='flag-5'>模式</b>配置lc823450系列音频应用

    浅析图像识别背后的发展历程

    图像识别,是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式目标和对像的技术。
    的头像 发表于 09-30 09:47 2.3w次阅读

    ​机器视觉作为智能机器人的重要感觉器官,也是目前研究的热门课题之一

    图像识别技术是人工智能的一个重要领域。它是指对图像进行对象识别,以识别各种不同模式目标和对像的技术。
    的头像 发表于 07-26 14:20 3439次阅读

    人工智能七个模式分别应用或以不同的组合应用

    超个性化模式被定义为使用机器学习来开发每个个体的文件,然后让该文件学习并随着时间的推移适应各种各样的目的,包括显示相关内容、推荐相关产品、提供个性化推荐等等。这种模式目标是将每个个体视为一个个体。
    的头像 发表于 09-19 11:00 3058次阅读

    图像识别赋能智慧安防 视频监控布设越来越密集

    何谓图像识别?简单来说,图像识别是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式目标和对象的技术,属于应用深度学习算法的一种实践应用。在生活中,“以图搜图”就是利用了图像识别技术。
    发表于 03-17 13:36 889次阅读

    人脸识别和图像识别技术是如何为安防赋能的

    图像识别是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式目标和对象的技术,属于应用深度学习算法的一种实践应用。
    发表于 03-18 11:14 934次阅读

    机器视觉对于各行业发展有何影响?

    就识别功能而言,利用机器视觉对图像进行处理、分析和理解,可以识别各种不同模式目标和对象。与此同时,借助机器视觉还能达到数据的追溯和采集,当前在汽车零部件、食品、药品等应用较多。举例而言,工业生产过程中的物料配送、分拣、条码扫描和物流行业中的快件分拣等,都离不开机器视觉的
    发表于 07-22 16:42 1063次阅读

    意法半导体新NFC读卡器的功能特点

    意法半导体的 ST25R3916B-AQWT 和ST25R3917B-AQWT NFC Forum读卡器芯片输出功率大,能效高,价格具有竞争力,支持 NFC 发起设备、目标设备、读取和卡模拟四种模式目标应用包括非接支付、设备配
    的头像 发表于 06-16 11:11 1231次阅读