今天來分享一下軟體演算法面試時常被提及的設計模式中的包裝(裝飾者)設計模式。
其實簡單來說,乙個類相當於乙個房子,它要實現房子的介面中的規範,來了個工程隊,他也要實現房子的介面中的規範,然後這個工程隊對這個房子進行裝飾修繕,沒修到的地方還是原來的房子,也就是原方法;修到的地方有了新的格局,也就是新的方法。
下面我們用**演示一下:
(1)建立乙個房子house介面
package designpatterns.baozhuang;
public
inte***ce
house
(2)建立乙個house介面的實現類毛坯房maopihouse類
package designpatterns.baozhuang;
public
class
maopihouse
implements
house
@override
public
void
wall()
}
(3)建立乙個工程隊enginnerteam類也要實現house介面
package designpatterns.baozhuang;
public
class
enginnerteam
implements
house
@override
public
void
floor()
@override
public
void
wall()
}
(4)建立測試類
package designpatterns.baozhuang;
public
class
test
}
執行輸出:
現在是純木地板地了!!!
現在是刷完的牆。
這就是裝飾者模式了。
下面總結一下包裝設計模式的步驟:
(1)建立包裝類,實現與被包裝類相同的介面;
(2)包裝類中宣告被包裝類型別物件;
(3)通過構造方法注入被包裝的包裝類物件;
(4)不關注的方法直接呼叫被包裝類物件的原方法,關注的方法則進行修改。
快速了解 Redis
比如 a 首頁一天有 100 萬人訪問,其中有乙個板塊為推薦新聞。要是直接從資料庫查詢,那麼一天就要多消耗 100 萬次資料庫請求。使用 redis 可以將這種熱點資料存到 redis 記憶體 中,要用的時候直接從記憶體取,極大的提高了速度和節約了伺服器的開銷 redis 也可用於訊息佇列,通過 l...
快速了解 Redis
比如 a 首頁一天有 100 萬人訪問,其中有乙個板塊為推薦新聞。要是直接從資料庫查詢,那麼一天就要多消耗 100 萬次資料庫請求。使用 redis 可以將這種熱點資料存到 redis 記憶體 中,要用的時候直接從記憶體取,極大的提高了速度和節約了伺服器的開銷 redis 也可用於訊息佇列,通過 l...
快速了解serverless
serverless 無伺服器計算架構,是雲計算時代的一種革命性架構模式,可以看做下一代計算資源架構 serverless概念主要思想就是無需使用者關注支撐應用服務的底層主機資源服務,因此使用者在一定程度上不能設定後端地具體資源配置檔案,所需要的資源數量由平台動態進行排程,簡單的說就是 去基礎架構 ...