橋接模式:
當發現我們需要多角度去分類實現物件,而只用繼承會造成大量的類增加,不能滿足開放-封閉 原則,就應該考慮用橋接模式了。
// 手機介面
public abstract class mobile
public mobilesoft getsoft()
public void setsoft(mobilesoft soft)
public string getbrand()
public void setbrand(string brand)
public abstract void run();
}// nokia手機
public class nokiamobile extends mobile
@override
public void run()
}// moto手機
public class motomible extends mobile
@override
public void run()
}// 手機軟體
public abstract class mobilesoft
public class mobile*** extends mobilesoft
}// 手機軟體: 遊戲
public class mobilegame extends mobilesoft
}public class bridgemain
}
合成/聚合復用原則:
聚合表示一種弱的擁有關係,體現的是a物件可以包含b物件,但b物件不是a物件的一部分(大雁和雁群是聚合關係)。
合成表示一種強的擁有關係,體現了嚴格的部分和整體的關係,部分和整體的生命週期一樣(大雁和翅膀就是合成關係)。
合成/聚合復用原則優點:
優先使用物件的合成/聚合將有助於你保持每個類被封裝,這樣類和類繼承層次會保持較小規模,並且不太可能增長為不可控制的龐然大物。
為什麼不用繼承?
繼承是一種強耦合的關係,父類變,子類也得跟著變,所以我們在用繼承時,一定要在是『is a』 的關係時再考慮使用。
大話設計模式 橋接模式
一 合成 聚合復用原則 盡量使用合成 聚合而不是繼承。二 橋接模式 將抽象部分與它的實現部分分離,使它們都可以獨立的變化。實現指的是抽象類和它的派生類用來實現自己的物件。三 示例 public abstract class handsetsoft public class handsetgame e...
大話設計模式二十二之職責鏈模式
菜鳥工作滿三個月了,馬上要辦轉正首先,提了加薪的事情。菜鳥對經理如實說了自己的想法,希望公司能在轉正時增加工資待遇,經理肯定了菜鳥的能力,但是加薪做不了主,但是幫他向上提一提。然後去找了人力資源總監,總監說這事他也做不了主,畢竟剛畢業的大學生加薪沒有先例,但總監說,等總經理來後,向總經理提一提這個事...
設計模式(二十二) 策略模式
有時候物件需要按照某種策略改變行為,我們可以利用策略模式,將策略或演算法提取出來,作為單獨的類實現。使用策略模式,可以讓具體演算法和應用物件分離,方便的根據不同條件替換策略。下面舉乙個例子。我們有乙個計算器,它會按照快和慢兩種策略來計算結果。所以我們可以將策略封裝起來。public inte ce ...