国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java 設計模式 - 橋接模式

2019-11-06 07:33:52
字體:
來源:轉載
供稿:網友

基本概念

橋接模式的動機:

由于實際的需要,某個類具有兩個或兩個以上的維度變化,如果只是用繼承將無法實現這種需要,或者使得設計變得相當臃腫。

橋接模式的作用:

橋接模式的做法是把變化部分抽象出來,使變化部分與主類分離開來,從而將多個維度的變化徹底分離。最后,提供一個管理類來組合不同維度上的變化,通過這種組合來滿足業務的需要。

橋接模式的角色:

Implementor,實現類接口。

ConcreteImplementor,具體實現類。

Abstraction,抽象類。

RefinedAbstraction,擴充抽象類。


實例探究

電視和遙控器就是一個典型例子。電視機和遙控器一樣都有多種種類,所以將它們中任何一個定義為一個具體類都不是好辦法。所以要采用兩層抽象。


Implementor,實現類接口。

public interface ITV { void turnOn(); void turnOff(); void changeChanel(int channel);}

ConcreteImplementor,具體實現類。

public class SonyTV implements ITV { @Override public void turnOn() { System.out.

Abstraction,抽象類。

public abstract class RemoteControl implements ITV { public ITV tv; public RemoteControl(ITV tv) { this.tv = tv; } @Override public void turnOn() { tv.turnOn(); } @Override public void turnOff() { tv.turnOff(); } @Override public void changeChanel(int channel) { tv.changeChanel(channel); }}

ConcreteImplementor,擴充抽象類。

public class LogitechRemoteControl extends RemoteControl { public LogitechRemoteControl(ITV tv) { super(tv); } public void setChannelKeyboard(int channel) { tv.changeChanel(channel); System.out.println("Logitech use key
Word to set channel."); }}

具體調用如下:

ITV tv = new SonyTV();LogitechRemoteControl lrc = new LogitechRemoteControl(tv);lrc.setChannelKeyboard(100);

參考

http://www.importnew.com/6857.html
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 贵定县| 卢湾区| 宝清县| 临泉县| 无极县| 额尔古纳市| 麻阳| 乌兰浩特市| 北宁市| 乳源| 公主岭市| 福鼎市| 郯城县| 饶河县| 海淀区| 宽城| 宣化县| 广汉市| 睢宁县| 曲水县| 兰西县| 横峰县| 天祝| 益阳市| 沙坪坝区| 清徐县| 海林市| 大同县| 喀喇| 蓬溪县| 平昌县| 晋江市| 定州市| 简阳市| 江陵县| 喀什市| 平阳县| 祁门县| 建宁县| 维西| 平定县|