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

建设部网站江苏金安亚马逊建站服务

建设部网站江苏金安,亚马逊建站服务,做一个微信公众号商城多少钱,公司请做网站桥接模式 介绍 桥接模式是一种结构型设计模式,它通过将抽象部分与实现部分分离,使它们可以独立变化。这种模式通过组合的方式来实现,而不是继承。桥接模式通过将抽象和实现解耦,从而实现抽象和实现的分离,使得系统更加…

桥接模式

介绍

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

角色

  • 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.yayakq.cn/news/229485/

相关文章:

  • 怎么做网站后缀识别符号才不会变wordpress微信分享图
  • 商城网站开发价怎么利用网站做cpa推广
  • 海南省建设集团有限公司网站湖南网站制作哪家专业
  • 企业网站建设包含哪些内容云服务器可以做图片外链网站吗
  • 网站引导页动画q a wordpress插件下载
  • 网站安装环境配置手机网站自动适配代码
  • 办个网站需要多少钱男女做羞羞事网站
  • dw怎样做网站链接网站建设与维护招聘条件
  • 网站建设与推广公司深圳尚层装饰公司官网
  • 网站宣传的好处现在写博客还是做网站
  • 珠海做网站哪家最专业古典家具公司网站模板
  • 2008 iis 添加 网站 权限设置权限网页设计html期末考试
  • 济南高新网站制作东平做网站
  • 宁波做网站费用怎么检查网站有没有被挂马
  • 网站建设教程资源彩票网站的统计怎么做
  • 做网站 需要什么样的服务器建站网站主题设置不能点
  • 微信做一元云购网站wordpress 使用插件
  • 产品展示网站 源码可以做商城网站的公司
  • 普通营业执照有做网站条件吗seo优化评论
  • 农业企业网站建设手机app下载免费安装
  • 永清网站建设音乐网站源码带手机版
  • 数据库查询网站模板大学生网站开发工作室总结
  • 记事本网页制作教程杭州关键词优化外包
  • 网站开发一般用的什么架构学做蛋糕网站
  • 做网站的哪里有html样式代码大全
  • 英文商城网站建设廊坊排名推广
  • 商城网站 备案在网站上卖东西怎么做
  • 3g门户手机网优化防疫政策
  • 中国建设银行湖北省分行网站网页美工设计书本
  • 广州艾迪网站建设网站建设首选