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

果业局网站建设单位网站建设情况

果业局网站建设,单位网站建设情况,萍乡网站seo,注册软件开发公司需要什么条件桥接模式 介绍 桥接模式是一种结构型设计模式,它通过将抽象部分与实现部分分离,使它们可以独立变化。这种模式通过组合的方式来实现,而不是继承。桥接模式通过将抽象和实现解耦,从而实现抽象和实现的分离,使得系统更加…

桥接模式

介绍

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

角色

  • 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/791323/

相关文章:

  • 公司产品彩页设计安阳网站自然优化
  • 没有网站怎么做网络推广报名工具小程序官网
  • 网站设计一般包括网站结构设计网站建设中应该注意什么
  • 河北省建设项目环保备案网站做网站什么行业前景好
  • 北京个人网站公司东营seo整站优化
  • 各类网站网站建设的目标是什么wordpress 修改网址导航
  • 找代理做网站多少钱wordpress slider代码
  • 怎么下载网站页面如何做计算机网站
  • 动漫网站策划书怎么注册公司微信号
  • 网站营销计划书公司注册地址变更流程
  • 南昌专门做网站做网站代理好吗
  • vps网站访问不了东莞外贸推广公司
  • 服务器网站后台登陆密码黄框显示建筑网片钢筋网生产厂家
  • 织梦网站优化教程郑州可以做网站的公司
  • 有动效得网站钟祥网站制作
  • 网站优化插件内蒙古城乡和住房建设厅网站
  • 文字网站和图片网站哪个难做最优的郑州网站建设
  • 门户网站整站源码常平网站建设
  • 潮品服饰网站建设规划书开源程序做网站
  • 手工艺品网站建设购物网站优惠券怎么做
  • 企业建站哪个好信用中国官网企业查询
  • 免费做手机网站建设网站整体配色方案
  • 品牌网站建站目的邀请函制作软件app有哪些
  • 建设网站代码网站开发的工具
  • 网站外网怎么做广州代注册公司哪家好
  • 广州市外贸网站建设企业公司设计网站需要多少钱
  • 网站后台版权桐乡建设局网站
  • 外贸网站平台下载网站美术视觉效果布局设计
  • 网站域名注销备案网站建设什么因素最重要性
  • 南宁建设网站公司wordpress研究机构主题