bridge pattern 橋接模式

2021-06-11 22:48:23 字數 1805 閱讀 4483

bridge模式又稱為handle/body模式。

在軟體系統中,經常面臨著「某些結構複雜的物件」的建立工作,由於需求的變化,這些物件經常面臨著劇烈的變化,但是他們卻擁有比較穩定一致的介面。大部分建立型模式,就是為了解決如何向「客戶程式」隔離出「這些易變物件」,從而使得「依賴這些易變物件的客戶程式」不隨著需求的改變而改變。

例項分析

賓士汽車的制動距離(從這個速度到完全停止所需要的距離)其他因素穩定,是隨著輪胎摩擦力不同而不同的。現在用的是公尺其林輪胎

1

class

michelinwheel2;

10 michelinwheel::michelinwheel( int

q,....)

11:quilty(q)

12{}

13int

michelinwheel::getload( )

1419

20class

benzcar21;

28 benzcar::benzcar(michelinwheel*w)

2932

benzcar::getdistance ( )

33

那麼這裡我們可以看出,benzcar這個類對michelinwheel這個類依賴很大,因為得到的制動距離是因輪胎負載力這個引數為主要因素,那麼我們一般設計類,就可以抽象化、一般化,如果某個汽車使用michelinwheel輪胎它的制動距離和上面是一樣的。

1

class

michelinwheel2;

10 michelinwheel::michelinwheel( int

q,....)

11:quilty(q)

12{}

13int

michelinwheel::getfriction( )

1419

20class

car21;24

25class benzcar:public

car26

;33 benzcar::benzcar(michelinwheel*w)

3437

benzcar::getdistance ( )

38

那麼現在看來是汽車這個抽象類依賴michelinwheel這個類,它的制動距離受michelinwheel這個類的影響。那麼現在實際情況是汽車不僅僅使用公尺其林輪胎,還使用普利司通輪胎和其它等等。如果使用普利司通輪胎,那麼摩擦力計算又改變了,所以抽象化,制動距離只依賴與抽象的輪胎中的獲得摩擦力的方法了。

1

class

wheel2;

67class michelinwheel:public wheel8;

16 michelinwheel::michelinwheel( int

q,....)

17:quilty(q)

18{}

19int

michelinwheel::getfriction( )

2025

26class

car27;30

31class benzcar:public

car32

;39 benzcar::benzcar(wheel*w)

4043

benzcar::getdistance ( )

44

橋接模式 BridgePattern

抽象部分 using system using system.collections.generic using system.text namespace bridgepattern public string name set public string age set public strin...

橋接模式 BridgePattern

抽象部分 using system using system.collections.generic using system.text namespace bridgepattern public string name set public string age set public strin...

kvm橋接方案

下面介紹配置kvm橋接網路的方法 特別注意,大部分不能橋接無線網絡卡。只能橋接pci網絡卡。安裝橋接工具 sudo apt get install bridge utils 安裝建立tap介面的工具 sudo apt get install uml utilities 編輯網路介面配置檔案 sudo...