### 合成/聚合復用原則
盡量使用合成/聚合,盡量不要使用類繼承。(摘抄)
其實合成/聚合復用原則,平時都會使用,但是自己總結可能有點總結不出來。這個原則用我的理解就是抽象與抽象之間劃分必須明確,盡量不要讓一個抽象去繼承與另一個抽象,要讓一個抽象去調用另一個抽象。
繼承的使用必須要十分謹慎,因為使用繼承之后,父類發生改變,必然會影響到子類。繼承使用時必須要確定當前類和父類是有非常緊密的關系,不然會對當前類的復用產生很大的影響。要從當前類的職責來考慮問題。
聚合表示一種弱的“擁有”關系,體現的是A對象可以包含B對象,但B對象不是A對象的一部分;合成則是一種強的“擁有”關系,體現了嚴格的部分和整體的關系,部分和整體的生命周一樣。(摘抄)
合成/聚合復用原則的好處是,優先使用對象的合成/聚合將有助于你保持每個類被封裝,并集中在單個任務上。這樣類和類繼承層次會保持較小規模,并且不太可能增長為不可控制的龐然大物。(摘抄)
### 橋接模式
將抽象部分與它的實現部分分離,使它們都可以獨立地變化。(摘抄)
這句話地意思應該是把它的每個功能和功能之間都分開。然后這些功能和整個物體的抽象也分開。
這個功能的說法并不是一定代表一個具體的功能,它是這個系統的某一個實現,暫且把實現就當成實現一個功能
~~~
//功能接口
public interface Implementor
{
void Operation();
}
//功能的實現A&B
public class ConcreteImplA implements Implementor
{
@Override
public void Operation() {
// TODO Auto-generated method stub
System.out.println("A");
}
}
public class ConcreteImplB implements Implementor
{
@Override
public void Operation() {
// TODO Auto-generated method stub
System.out.println("B");
}
}
//整個物體的抽象
public class Abstract
{
public Implementor implementor;
public void setImplementor(Implementor implementor) {
this.implementor = implementor;
}
public void Operation()
{
implementor.Operation();
}
}
//某個子物體
public class RefinedAbstract extends Abstract
{
@Override
public void Operation()
{
//可以添加特有的一些操作
implementor.Operation();
}
}
class Client
{
public static void main()
{
Abstract ab = new RefinedAbstract();
ab.setImplementor(new ConcreteImplA());
ab.Operation();
ab.setImplementor(new ConcreteImplB());
ab.Operation();
}
}
~~~
實現系統啃呢個有多種角度分類,每一種分類都有可能變化,那么就把這種多角度分離出來讓它們獨立變化,減少它們之間的耦合。(摘抄)—— 感覺這句話總結得很精辟。
- 前言
- (1)代碼無錯就是優?——簡單工廠模式
- (2)商場促銷——策略模式
- (3)&(4)&(5) 設計模式原則
- (6)穿什么有這么重要?——裝飾模式
- (7)為別人做嫁衣——代理模式
- (8)雷鋒依然在人間——工廠方法模式
- (9)簡歷復印——原型模式
- (10)考題抄錯會做也白搭——模板方法模式
- (11)迪米特法則
- (12)牛市股票還會虧錢?—— 外觀模式
- (13)好菜每回味不同——建造者模式
- (14)老板回來,我不知道——觀察者模式
- java實現事件委托
- (15)就不能不還DB嗎?—— 抽象工廠模式
- (16)無盡加班何時休息——狀態模式
- (17)在NBA我需要翻譯——適配器模式
- (18)如果再回到從前——備忘錄模式
- (19)分公司=部門——組合設計模式
- (20)想走?可以!先買票——迭代器模式
- (21)有些類也需計劃生育——單例模式
- (22)手機軟件何時統一——橋接模式
- (23)烤羊肉串引來的思考——命令模式
- (24)加薪非要老總批?——職責鏈模式
- (25)世界需要和平——中介者模式
- (26)項目多也別傻做——享元模式
- (28)男人和女人——訪問者模式