設計模式 裝飾者模式

2021-10-22 15:34:51 字數 1343 閱讀 4988

檢視設計模式目錄:

建立乙個包裝類裝飾現有類,在不改變原有類的情況下擴充套件該類,比生成子類更靈活。

io 流使用的就是裝飾者模式。

現在假設你有乙個物品,你來使用裝飾者模式為其裝飾上顏色:

為了表明裝飾器可裝飾物品,裝飾器、物品都繼承乙個父介面。

public

inte***ce

parentinte***ce

1.你的物品

public

class

goods

implements

parentinte***ce

}

2.你的抽象裝飾器,它能夠對物品裝飾

為什麼物品是介面型別而不是goods呢,因為你的物品可能不止一種,抽象裝飾器表明它可以裝飾了。

public

class

decker

implements

parentinte***ce

//裝飾的方法,此處不裝飾,在子類中實際裝飾

public

void

show()

}

3.你的實際裝飾器(2個)

1.綠色裝飾器

public

class

deckergreen

extends

decker

@override

//實際裝飾

public

void

show()

}

2.紅色裝飾器

public

class

deckerred

extends

decker

@override

//實際裝飾

public

void

show()

}

開始裝飾

public

class

main

}

裝飾結果

裝飾者模式和**模式相似。

設計模式 裝飾者模式

public abstract class beverage public abstract double cost public abstract class condimentdecorator extends beverage public class darkroast extends be...

設計模式 裝飾者模式

沒什麼特別的,之前看懂了,這次自己再複述一下。畢竟把別人講懂了才是真的懂了。主要參考了head first 設計模式。例子講述的是在為星巴克咖啡的製作訂單的情況,比如客人點了飲料,那麼系統會自動算出 不知道是我沒有體會到,還是這個例子不太合適,算出 那麼簡單的事還需要用到類?不過不影響我們思考裝飾者...

設計模式 裝飾者模式

好幾天沒出部落格了,在學習android的一些新控制項的時候,用到了乙個模式,叫裝飾者模式,所以在此講講這個模式。模式,包含以下四個角色 1 抽象構件 component 角色 給出乙個抽象介面,以規範準備接收附加責任的物件。2 具體構件 concretecomponent 角色 定義乙個將要接收附...