Bridge[接通企業與企業之間、人與人之間、企業與人之間的接口]

Bridge[接通企業與企業之間、人與人之間、企業與人之間的接口]

BRIDGE ,網橋,是一個網路設備或軟體,用於兩個或多個網路之間的互連,對幀進行轉發。與路由器的區別在於它工作於數據鏈路層。您可以將資源按照需要拖移到版面中進行預覽,甚至向其中添加元數據。將原本緊耦合的兩個類進行脫耦,使他們可以獨立的變化而不互相影響。實際上,Bridge就是通過抽象層與實現層的分離,來實現脫耦的目的的。接通企業與企業之間、人與人之間、企業與人之間的接口,稱之為橋。BRIDGE是RING的一個延伸,合成CHAIN,連成NET。

基本信息

基本特徵

1.網橋在數據鏈路層上實現區域網路互連;

2.網橋能夠互連兩個採用不同數據鏈路層協定、不同傳輸介質與不同傳輸速率的網路;

3.網橋以接收、存儲、地址過濾與轉發的方式實現互連的網路之間的通信;

4.網橋需要互連的網路在數據鏈路層以上採用相同的協定;

5.網橋可以分隔兩個網路之間的廣播通信量,有利於改善互連網路的性能與安全性。

控制中心

Adobe Bridge CS6Adobe Bridge CS6

Adobe Bridge 是Adobe Creative Suite的制中心。您使用它來組織、瀏覽和尋找所需資源,用於創建供印刷、網站和移動設備使用的內容。

Adobe Bridge使您可以方便地訪問本地 PSD、AI、INDD 和 Adobe PDF 檔案以及其它 Adobe 和非 Adobe 應用程式檔案。您可以將資源按照需要拖移到版面中進行預覽,甚至向其中添加元數據。

Bridge 既可以獨立使用,也可以從 Adobe Photoshop、Adobe Illustrator、Adobe InDesign 和 Adobe GoLive 中使用。

模式

宗旨

BridgeBridge

將原本緊耦合的兩個類進行脫耦,使他們可以獨立的變化而不互相影響。脫耦就是將強關聯的兩個實體間的關聯降低為弱關聯,經常表現為:將繼承關係轉化為關聯關係。

核心概念

1.抽象層:對實現層的上層處理或者上層調用。

2.實現層:對抽象層的處理或者調用,施以回應。具體實現抽象層的各種方法。

3.脫耦

實際上,Bridge就是通過抽象層與實現層的分離,來實現脫耦的目的的。

結構圖

左邊為抽象層,右邊為實現層。他們之間的“複合”關係即為Bridge。

典型套用

public abstract class Report

{

Reporter reporter;

public Report(Reporter reporter) {

this.reporter = reporter;

}

//抽象類使用橋接對象的方法來實現一個任務

public void addReportItem(Object item){

reporter.addLine(item.toString());

}

public void addReportItems(List items){

Iterator iterator = items.iterator();

while ( iterator.hasNext() )

{

reporter.addLine(iterator.next().toString());

}

}

public String report(){

return reporter.getReport();

}

}

public class StockListReport extends Report{

ArrayList stock=new ArrayList();

public StockListReport(Reporter reporter){

super(reporter);

}

public void addStockItem(StockItem stockItem){

stock.add(stockItem);

addReportItem(stockItem);

}

}

//實現層次的抽象父類定義原子方法,供抽象層次的類調用

public abstract class Reporter{

String header = "";

String trailer = "";

String report = "";

public abstract void addLine(String line);

public void setHeader(String header){

this.header = header;

}

public void setTrailer(String trailer){

this.trailer = trailer;

}

public String getReport(){

return header+report+trailer;

}

}

public class HTMLReporter extends Reporter{

public HTMLReporter(){

setHeader("\n\n\n");

setTrailer("\n");

}

public void addLine(String line){

report += line + "

\n";

}

}

public class ASCIIReporter extends Reporter{

public void addLine(String line) {

report += line + "\n";

}

}

使用橋樑

1.如果一個系統需要在構件的抽象層和實現層之間增加更多的靈活性,避免在兩個層次之間建立靜態的聯繫。

2.設計要求實現層的任何改變不應當影響客戶端,或者說實現層的改變對客戶端是完全透明的。

3.一個構件有多於一個的抽象層實例和實現層實例,系統需要它們之間進行動態耦合。

4.雖然在系統中使用繼承是沒有問題的,但是由於抽象層和實現層需要獨立變化,設計要求需要獨立管理這兩者。

相關詞條

熱門詞條

聯絡我們