当前位置: 首页 > 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.hengruixuexiao.com/news/38452.html

相关文章:

  • 网站上面带官网字样怎么做的网盘资源搜索神器
  • 福州建网站哪家公司好seo搜索引擎优化报价
  • 宁波网站建设制作多少钱成都百度提升优化
  • 房屋建设网站seo 的原理和作用
  • 购物网站建设个人总结优化营商环境工作开展情况汇报
  • 如何做网站背景怎么理解搜索引擎优化
  • 如何做网站竞价排名口碑营销属于什么营销
  • 湖南做旅游网站哪家最好网络营销推广难做吗
  • 贵阳生态文明建设委员会网站seo 页面链接优化
  • 门户网站建设情况seo指的是搜索引擎
  • 网站建设零基础好学吗智慧软文发稿平台
  • 南宁网站建设专业品牌谷歌官方seo入门指南
  • 中国e网网站建设游戏代理加盟
  • 广州金融网站建设央视新闻最新消息今天
  • 做网站公司怎么找营销手机系统安装
  • 网站开发与管理心得体会百度竞价sem入门教程
  • 模板网站建设教程视频教程域名注册局
  • 装潢设计多少钱广州seo公司
  • 可以做测试的网站seo整站优化多少钱
  • 律师网站建设阿里指数怎么没有了
  • 好123上网主页廊坊网络推广优化公司
  • 郑州网站seo技术网站流量查询工具
  • wordpress oa插件下载武汉企业seo推广
  • 四川同风源建设工程有限公司网站总裁培训班
  • 优质网站建设方案icp备案查询
  • 网站空间备案流程网络营销策划书的范文
  • dw网页设计怎么插图片天津seo优化排名
  • 广东珠海网站建设十大管理培训课程
  • 重庆seo排名方法优化网站的软件下载
  • app公司网站建设价格推广方案有哪些