freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

thedecoratorpattern裝飾模式(編輯修改稿)

2024-11-04 19:54 本頁面
 

【文章內(nèi)容簡介】 法,依靠委派來計算含調(diào)味品的咖啡價錢 如何裝飾?怎樣委派? ? 我們將裝飾對象想象成一個包裝。 首先我們生成一個 DarkRoast對象 DarkRoast Cost() DarkRoast繼承了 Beverage,擁有一個計算飲料價格的方法 cost()。 Mocha Cost() 然后 DarkRoast Cost() Mocha對象是裝飾者,他與被它裝飾的對象 DarkRoast具有相同的類型(是 Beverage的子類),也有一個 cost()方法。 顧客想要摩卡,所以我們創(chuàng)建一個 Mocha對象,并用它包裝DarkRoast. 再然后 Mocha Cost() DarkRoast Cost() whip對象是裝飾者,他與被它裝飾的對象 DarkRoast具有相同的類型,也有一個 cost()方法。 顧客還想要蛋奶,所以我們創(chuàng)建一個 Whip對象,并用它包裝 Mocha. Whip Cost() 現(xiàn)在,要計算飲料的價格 Mocha Cost() DarkRoast Cost() 調(diào)用最外層的裝飾者 whip的 cost(),whip再將計算任務委派給被它包裝的對象,得到一個價格后,再加上 whip自己的價格 ... Whip Cost() + + 問題 ? 如果一個顧客點了一份 DarkRoast加兩份mocha和一份 soy,其裝飾對象圖和價格計算過程有什么樣的呢? 要點 ? 裝飾者與被裝飾者具有相同的類型 ? 可以用多個裝飾者裝飾一個對象 ? 由于 裝飾者與被裝飾者具有相同的類型,我們可以用裝飾后的對象代替原來的對象。 ? 裝飾者在委派他裝飾的對象作某種處理時,可以添加上自己的行為(功能擴展)(在委派之前或 /和之后)。 ? 對象可以在任何時候被裝飾,因此我們能在運行時動態(tài)的裝飾對象。 裝飾模式的定義 ? 裝飾模式可以動態(tài)的給一個對象附加一些功能,對于擴展功能來說,裝飾模式(合成)比生成子類的方式(繼承)更加靈活。 裝飾模式的類圖結構 Component methodA() methodB() //Other methods ConcreteDecoratorA Component wrappedObj methodA() methodB() //other methods ConcreteComponent methodA() methodB() //Other methods Decorator methodA() methodB() //Other methods ConcreteDecoratorB Component wrappedObj Object newState methodA() methodB() //other methods ponent 咖啡店的類圖 HouseBlend Cost() Beverage description
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1