伤脑筋的bridge模式-我不明白。。
看了看 看了看。。看不明白。
還是那圖,還是那人。
傷腦筋。
不過看到了幾句話:
oo的原則?之一就是 相比使用繼承 使用 對象組合更好 。
另外:
GoF 在說明Bridge 模式時,在意圖中指出Bridge 模式“將抽象部分與它的實現部分分
離,使得它們可以獨立地變化”。而這里的“實現”的含義指的是怎么去實現
用戶的需求,并且指的是通過組合(委托)的方式實現的,因此這里的實現不是指的繼承基
類、實現基類接口,而是指的是通過對象組合實現用戶的需求。理解了這一點也就理解了
Bridge 模式,理解了Bridge 模式,你的設計就會更加Elegant 了。
拿這里的抽象是對應 用戶需求地抽象嗎?
橋是什么東西呢.
橋下是河,橋地兩旁是小山丘,住著人。這些人可以通過這座橋往來。這里的人不是通常得人。 橋的一旁可以發生改變,但是另外一旁卻可以不變。
橋是一種聯系,關系。關系很抽象。你可以說人和諸由聯系,人和石頭有聯系,。。。沒有關系的 你可以為他們建立關系。
在程序設計中 通常的能訪問是說 一方包含另一方。
說說橋的表面形式吧。
兩個抽象類A1,A2,其中A1能訪問 A2(A1有一個成員是指向A2的指針 ,之所以使用指針是因為運行時邦定)。A1,A2均可以派生出很多子類。
你只要在A1的構造函數中傳入一個A2類系的指針,這樣你的 A1類系的 對象就可以訪問相應的A2類系的成員了。
說了這么多還時那樣。
通過組合改變類對象的行為。當一個類對象包含其他類對象時,可以通過改變它所包含的類對象來改變它的行為。
不過別忘了 為了看起來好看 ,有讓他們有共同的或者相似的接口(成員方法)。
????????????????????????????????????????????????????????????????????? I(/fn/)
?????????????????????????????????????????????????? //???????????????????????????????????? ? //
???????????????????????????? ????? A1(//A2*pq2//)------------橋---------------------->A2
?????????????????????? ||??????????????? ||??????????????????????????????????????????????????????????||??????????????????????? ||????????????? //
???????????????????? A11????????????? A12???????????????????????????????????????????????????A21?????????????????A22?????????? A23
//
A1 *pa1= new A11( new A21 );
pa1->fn();
pa1= new A12( new A21);
pa1->fn();
pa1= new?? A11(new A22);
pa1->fn();
//注意橋這種模式是 針對 用戶需求的(具體什么意思我也不曉得)
總結
以上是生活随笔為你收集整理的伤脑筋的bridge模式-我不明白。。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL查询sql的关键字_sql中查
- 下一篇: 论文查重后修改技巧有哪些?