结构型---桥接模式

举报
斌哥来了 发表于 2021/07/29 10:32:21 2021/07/29
【摘要】 // “ 抽象部分 ” 定义了两个类层次结构中 “ 控制 ” 部分的接口。它管理着一个指向 “ 实 // 现部分 ” 层次结构中对象的引用,并会将所有真实工作委派给该对象。 class RemoteControl is protected field device: Device constructor RemoteControl(device: D...













// “ 抽象部分 定义了两个类层次结构中 控制 部分的接口。它管理着一个指向

// 现部分 层次结构中对象的引用,并会将所有真实工作委派给该对象。

class RemoteControl is

protected field device: Device

constructor RemoteControl(device: Device) is

this.device = device

method togglePower() is

if (device.isEnabled()) then

device.disable()

else

device.enable()

method volumeDown() is

device.setVolume(device.getVolume() - 10)

method volumeUp() is

device.setVolume(device.getVolume() + 10)

method channelDown() is

device.setChannel(device.getChannel() - 1)

method channelUp() is

device.setChannel(device.getChannel() + 1)



// 你可以独立于设备类的方式从抽象层中扩展类。

class AdvancedRemoteControl extends RemoteControl is

method mute() is

device.setVolume(0)



// “ 实现部分 接口声明了在所有具体实现类中通用的方法。它不需要与抽象接口相

// 匹配。实际上,这两个接口可以完全不一样。通常实现接口只提供原语操作,而

// 抽象接口则会基于这些操作定义较高层次的操作。

interface Device is

method isEnabled()

method enable()

method disable()

method getVolume()

method setVolume(percent)

method getChannel()

method setChannel(channel)



// 所有设备都遵循相同的接口。

class Tv implements Device is

// ...


class Radio implements Device is

// ...



// 客户端代码中的某个位置。

tv = new Tv()

remote = new RemoteControl(tv)

remote.togglePower()


radio = new Radio()

remote = new AdvancedRemoteControl(radio)











【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。