裝飾模式就這麼簡單

2021-10-03 09:28:16 字數 767 閱讀 5569

裝飾模式(decorator)

顧名思義,裝飾模式就是給乙個物件增加一些新的功能,而且是動態的,要求裝飾物件和被裝飾物件實現同乙個介面,裝飾物件持有被裝飾物件的例項,關係圖如下:

source類是被裝飾類,decorator類是乙個裝飾類,可以為source類動態的新增一些功能,**如下:

public inte***ce sourceable
public class source implements sourceable 

}

public class decorator implements sourceable 

@override

public void method()

}

測試類:

public class decoratortest 

}

輸出:before decorator!

the original method!

after decorator!

裝飾器模式的應用場景:

1、需要擴充套件乙個類的功能。

2、動態的為乙個物件增加功能,而且還能動態撤銷。(繼承不能做到這一點,繼承的功能是靜態的,不能動態增刪。)

缺點:產生過多相似的物件,不易排錯!

ERP就這麼簡單

訂貨意向 妻子 當然可以,來幾個人,幾點來,想吃什麼菜?丈夫 6個人,我們7點左右回來,準備些酒 烤鴨 番茄炒蛋 冷盤 蛋花湯。你 看可以嗎?商務溝通 妻子 沒問題,我會準備好的,訂單確認 妻子記錄下需要做的選單 mps計畫 具體要準備的菜 鴨 酒 番茄 雞蛋 作 油。bom物料清單 發現需要 1只...

「備忘錄模式」就這麼簡單

備忘錄模式的官方定義 在不破壞封裝性的前提下,獲取乙個物件的內部狀態,並在該物件之外儲存這些狀態。這樣以後就可以通過該物件恢復到原先儲存的狀態。大白話說 乙個物件中一般都封裝了很多屬性,這些屬性的值會隨著程式的執行而變化。當我們需要儲存某一時刻物件的某些值的時候,我們就再建立乙個物件,將當前物件中的...

氣泡排序就這麼簡單

在我大一的時候自學c語言和資料結構,我當時就接觸到了氣泡排序 當時使用的是c語言編寫的 現在大三了,想要在暑假找到乙份實習的工作,又要回顧一下資料結構與演算法的知識點了。排序對我們來說是一點也不陌生了,當你打王者榮耀的時候也會有段位之分,當你打dota的時候也有天梯分。從高往下數,這個排名是有規律的...