裝飾器模式 java

2021-08-30 18:17:29 字數 908 閱讀 1101

decorator:

getresult()得到帶有url的資訊

抽象類a

類b 繼承a

analyses(content list)

類c 繼承a 屬性a的物件a analyses() 包含a.analyses()

類f 繼承c analyses() 長短有效性匹配

getresult() 執行super.analyses()

a a = new b(content,list);

a c = new c(a)

a = new d(c)

a = new e(a)

a = new f(a)

執行a.analyses()

返回a.getresult()

(還是有點迷糊)

二。 裝飾器模式一般包含四部分。

抽象基類或介面

被裝飾的物件類

裝飾類的基類

裝飾類的子類

其中,抽象基類是裝飾基類和被裝飾類的父類,規定兩者的主要行為和屬性。

被裝飾類,是原生態的類,是業務基本承載體。

裝飾類的基類,

是對被裝飾類的擴張,動態的新增行為(是對原生態行為的擴張,而不會新增另外的對外行為方法)。其,包含抽象基類(即被裝飾類)的乙個物件屬性;在該基類物件的行為方法中,通過呼叫該物件屬性的行為方法,給被裝飾物件動態的新增行為。

裝飾類的子類,可以多個;根據業務需要,每個新新增的裝飾行為為乙個裝飾子類。

三: 裝飾器模式的作用及使用場景:

在不改變原有物件的前提下,動態的增加它的功能,在這種情況下,可以使用裝飾器模式。。。 有的時候,希望實現乙個基本的核心**塊,由外圍**實現專用效能的包裝,最簡單的方法,是使用超類,但是超類中使用了繼承,而增加了耦合性,在這樣情況下,可以使用裝飾器模式,組合取代繼承。

java裝飾器模式

裝飾器模式使用分層物件來動態透明地向單個物件新增責任。裝飾器指定包裝在最初的物件周圍的所有物件具有相同的介面。decorator裝飾器,顧名思義,就是動態地給乙個物件新增一些額外的職責,就好比為房子進行裝修一樣。因此,裝飾器模式具有如下的特徵 它必須具有乙個裝飾的物件。它必須擁有與被裝飾物件相同的介...

Java設計模式 裝飾器模式

我們 不從最基本的裝飾器模式概念入手 先來看問題好了。提出問題 假如 有以下海關入關通用處理方法 public class shanghaicustoms public class beijingcustoms 現在我們需要新加入需求,原先的處理流程不變,但是需要加入security checks和...

Java 設計模式 裝飾器模式

本文由 luzhuo 編寫,請保留該資訊.原文 裝飾模式可以動態的給乙個物件增加一些額外的功能 增強功能 相比於繼承,裝飾模式能對不支援繼承的類進行增強 並且比繼承更靈活,不需要生成大量的子類 public inte ce phonepublic final class phoneimpl impl...