共找到5條詞條名為Bridge的結果 展開

Bridge

接通企業與企業之間、人與人之間、企業與人之間的介面

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

概述


數據鏈路層互聯的設備是網橋(bridge),在網路互聯中它起到數據接收、地址過濾與數據轉發的作用,用來實現多個網路系統之間的數據交換。
bridge在某種意義上 等同與switches,不同的地方在於bridges只包括2到4個埠(port),而switches可以包括多達上百埠。但是相同的地方是它們都可以分割大的衝突域為數個小衝突域,因為1個埠即為1個衝突域,但是它們仍然處在1個大的廣播域中。分割廣播域的任務,可以以routers來完成。

基本特徵


1.網橋在數據鏈路層上實現區域網互連;
2.網橋能夠互連兩個採用不同數據鏈路層協議、不同傳輸介質與不同傳輸速率的網路;
3.網橋以接收、存儲、地址過濾與轉發的方式實現互連的網路之間的通信;
4.網橋需要互連的網路在數據鏈路層以上採用相同的協議;
5.網橋可以分隔兩個網路之間的廣播通信量,有利於改善互連網路的性能與安全性。

控制中心


Adobe Bridge CS6
Adobe 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 中使用。

模式


宗旨

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

核心概念

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