当前位置: 首页 > news >正文

42区 网站开发指南今日最新体育新闻

42区 网站开发指南,今日最新体育新闻,织梦模板首页修改教程,青白江区城乡和建设局网站桥接模式 介绍 桥接模式是一种结构型设计模式,它通过将抽象部分与实现部分分离,使它们可以独立变化。这种模式通过组合的方式来实现,而不是继承。桥接模式通过将抽象和实现解耦,从而实现抽象和实现的分离,使得系统更加…

桥接模式

介绍

桥接模式是一种结构型设计模式,它通过将抽象部分与实现部分分离,使它们可以独立变化。这种模式通过组合的方式来实现,而不是继承。桥接模式通过将抽象和实现解耦,从而实现抽象和实现的分离,使得系统更加灵活。

角色

  • Abstraction(抽象类): 定义抽象类,包含一个对实现接口的引用,并定义一些抽象方法。

  • RefinedAbstraction(扩充抽象类): 对抽象类进行扩充,可以继承抽象类并实现抽象方法。

  • Implementor(实现类接口): 定义实现类的接口,可以包含一些基本的操作。

  • ConcreteImplementor(具体实现类): 实现Implementor接口的具体实现类。

使用场景

当我们要实现的系统可能存在多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。

结构图

在这里插入图片描述

案例

假设我们要设计一个远程控制器,它可以控制不同的设备,比如电视和音响。使用桥接模式可以使控制器和设备之间的关系更加灵活。

代码

// Implementor(实现类接口)
interface Device {void turnOn();void turnOff();void setChannel(int channel);
}
// ConcreteImplementor(具体实现类1)
class TV implements Device {@Overridepublic void turnOn() {System.out.println("TV is turned on");}@Overridepublic void turnOff() {System.out.println("TV is turned off");}@Overridepublic void setChannel(int channel) {System.out.println("TV channel set to " + channel);}
}
// ConcreteImplementor(具体实现类2)
class Stereo implements Device {@Overridepublic void turnOn() {System.out.println("Stereo is turned on");}@Overridepublic void turnOff() {System.out.println("Stereo is turned off");}@Overridepublic void setChannel(int channel) {System.out.println("Stereo channel set to " + channel);}
}
// Abstraction(抽象类)
abstract class RemoteControl {protected Device device;public RemoteControl(Device device) {this.device = device;}public abstract void turnOn();public abstract void turnOff();public abstract void setChannel(int channel);
}
// RefinedAbstraction(扩充抽象类)
class BasicRemoteControl extends RemoteControl {public BasicRemoteControl(Device device) {super(device);}@Overridepublic void turnOn() {System.out.print("Basic remote: ");device.turnOn();}@Overridepublic void turnOff() {System.out.print("Basic remote: ");device.turnOff();}@Overridepublic void setChannel(int channel) {System.out.print("Basic remote: ");device.setChannel(channel);}
}
// RefinedAbstraction(扩充抽象类)
class AdvancedRemoteControl extends RemoteControl {public AdvancedRemoteControl(Device device) {super(device);}@Overridepublic void turnOn() {System.out.print("Advanced remote: ");device.turnOn();}@Overridepublic void turnOff() {System.out.print("Advanced remote: ");device.turnOff();}@Overridepublic void setChannel(int channel) {System.out.print("Advanced remote: ");device.setChannel(channel);}public void mute() {System.out.println("Mute");}
}
// Client(客户端)
public class BridgePatternExample {public static void main(String[] args) {// 使用桥接模式创建远程控制器和设备的组合TV tv = new TV();Stereo stereo = new Stereo();RemoteControl basicRemote = new BasicRemoteControl(tv);RemoteControl advancedRemote = new AdvancedRemoteControl(stereo);// 使用远程控制器控制设备basicRemote.turnOn();basicRemote.setChannel(5);basicRemote.turnOff();System.out.println();advancedRemote.turnOn();advancedRemote.setChannel(10);advancedRemote.turnOff();((AdvancedRemoteControl) advancedRemote).mute();}
}
http://www.tj-hxxt.cn/news/73564.html

相关文章:

  • 如何注册域名和网站外链平台
  • 南京建设公司网站浏览器广告投放
  • 商场建设相关网站seo咨询常德
  • 自己做港澳台照片回执网站阿里大数据平台
  • dw如何在网站做弹窗今天重大新闻
  • 大学生创业服务网站建设方案项目书云服务器免费
  • 黄石本土做网站的公司优化关键词哪家好
  • 哈尔滨优质官网建站企业汕头seo计费管理
  • 东营网站搭建长沙全网推广
  • 西安信誉好的做网站的海南网站推广
  • 桂城网站建设制作无锡网站建设seo
  • 秦皇岛哪家做网站好兰州网络seo公司
  • 网站模板资源厦门人才网官网
  • 湛江做网站报价郑州网络推广代理顾问
  • 兰州网站排名哪家公司好如何优化网站推广
  • 主机开通成功网站正在建设中永久免费无代码开发平台网站
  • 上海华谊集团建设有限公司网站图片优化是什么意思
  • 在那可以做公司网站推荐就业的培训机构
  • 阿里云的虚拟主机用什么做网站直接下载app
  • 做老师好还是网站编辑好百度收录网址提交
  • 营销型网站建设eyouc万网建站
  • 公司网站地图怎么做百度发布
  • 南宁网站定制开发怎么样把广告做在百度上
  • 企业网站的基本功能有哪些泉州搜索推广
  • wordpress新闻中心win7优化大师官方网站
  • 17网站一起做网店app西安网站搭建
  • 简历制作网站免费百度站长工具怎么用
  • 什么网站做任务四川省人民政府
  • 自做网站教程谷歌seo技巧
  • 俄语企业网站制作店铺如何运营和推广