java設計模式 裝飾模式

2021-07-15 15:35:28 字數 2925 閱讀 8606

裝飾( decorator )模式又叫做包裝模式。通 過一種對客戶端透明的方式來擴充套件物件的功能, 是繼承關係的乙個替換方案。

抽象元件角色: 乙個抽象介面,是被裝飾類和 裝飾類的父介面。 具體元件角色:為抽象元件的實現類。 抽象裝飾角色:包含乙個元件的引用,並定義了

與抽象元件一致的介面。 具體裝飾角色:為抽象裝飾角色的實現類。負責 具體的裝飾。

//示例1:

public

class

car

//飛public

void

fly()

//遊public

void

swim()

public

void

show()

}public

class

mainclass

}//擁有的功能

//可以跑

//可以飛

//可以遊

//*上例中顯然是車未來全部的功能,不可能每一輛車都擁有這些功能,所以需進一步優化

//示例2:

public

inte***ce

car

public

class

runcar

implements

car public

void

show()

}public

class

flycar

implements

car //飛

public

void

fly()

public

void

show()

}public

class

swimcar

implements

car //遊

public

void

swim()

public

void

show()

}public

class

mainclass

}//可以跑

//可以飛

//示例3:進一步優化

public

inte***ce

car

public

class

runcar

implements

car public

void

show()

}public

abstract

class

cardecorator

public

abstract

void

show();

}public

class

flycardecorator

extends

cardecorator

//飛public

void

fly()

public

void

show()

}public

class

swimcardecorator

extends

cardecorator

//遊public

void

swim()

public

void

show()

}public

class

mainclass

}//######flycardecorator#########

//可以跑

//可以飛

//######swimcardecorator#########

//可以跑

//可以遊

//示例4:再優化

public

inte***ce

car

public

class

runcar

implements

car public

void

show()

}public

abstract

class

cardecorator

implements

car public

abstract

void

show();

}public

class

flycardecorator

extends

cardecorator

//飛public

void

fly()

//跑

@override

public

void

run()

public

void

show()

}public

class

swimcardecorator

extends

cardecorator

//遊public

void

swim()

@override

public

void

run()

public

void

show()

}public

class

mainclass

}//可以跑

//可以遊

//可以飛

Java 設計模式 裝飾模式

看了大話設計模式此章節多遍才稍微有點理解,特此記錄。深入淺出,通俗易懂。情景 小菜要去見未來女友 嬌嬌,來個服裝打扮的設計。第一彈 客戶端 public static void main string args 問題來了,嬌嬌喜歡超人,小菜這次想穿的是超人,咋辦?直接修改小菜的類嗎?這就違背了開閉原...

java設計模式 裝飾模式

什麼是裝飾模式 裝飾模式就是動態的為乙個物件新增新的功能,它是一種代替繼承的技術,毋須通過繼承增加子類就能拓展物件功能的模式。開發中應用場景 1.io流中,設計的輸入和輸出 2.servlet api提供的乙個re quest物件的decrator模式的預設實現類httpservletrequest...

Java設計模式 裝飾模式

目錄 裝飾模式 定義 通用類圖 角色分類 抽象構件 component 具體構件 concretecomponent 裝飾角色 docorator 具體裝飾角色 concretedecoratora和b 裝飾模式與類繼承的區別 裝飾模式的特點 案例分析 輸出結果如圖所示 分析1 分析2 分析3 分析...