從到
java
讓咱們先忘記枯燥的UML圖,來作一次上帝的遊戲.
咱們把創造一我的簡化成4個維度,樣貌,體型,心裏和睦運. 每一個維度3種變化.
樣貌: 中庸,陽剛,陰柔
體型: 高大,矮小,適中
心裏: 善良,邪惡,混沌.
氣運: 位面之子,衰王之王,被忽視者.
咱們一共能夠擁有多少種人呢,一我的能夠是陽剛,高大,善良,位面之子(請讓我告終他),也能夠是其餘的.
咱們有4個維度,每一個維度3種變化.一共能夠有種人.
若是他們都繼承自Person類,也就有個類,那麼很不幸,世界爆炸了,兄弟你內存爆炸了.
人可不僅是這麼幾個維度,每一個維度更是變幻無窮.spa
幸虧咱們有別的辦法.咱們爲每一個維度創建抽象類/接口以及具體實現類.
一共4個維度,每一個維度3種變化,因此咱們有3 * 4
個類.
在創造一我的的時候,咱們在Person抽象類/接口中包含不一樣維度接口的引用..net
abstract class Person{
// 都是接口或者抽象類
Look look;
Body body;
Spirit spirit;
Luck luck;
}
複製代碼
這樣我只須要3*4=12
個類就能夠創造人類了,只須要set某個維度的實現類就能夠了.
這也對應開頭的,咱們從到
.設計
一個做爲橋接的接口,使得實體類的功能獨立於接口實現類。這兩種類型的類可被結構化改變而互不影響。
實現系統可從多種維度分類,橋接模式將各維度抽象出來,各維度獨立變化,以後可經過聚合,將各維度組合起來,減小了各維度間的耦合。3d