PHP 裝飾器模式 結構型設計模式

2021-10-24 22:26:00 字數 678 閱讀 6483

動態地為類的例項新增功能,一層一層的套功能

先定義好介面

inte***ce booking

這個就是裝飾器實現了booking,通過建構函式傳遞booking物件進來

abstract class bookingdecorator implements booking

}

這個類直接實現booking

class doubleroombooking implements booking

}

這個類繼承了裝飾器,實現了booking

class wifi extends bookingdecorator

}class extrabed extends bookingdecorator

public function getdescription(): string

}

$booking = new doubleroombooking();

//繼承裝飾器的可以一層層套

$booking = new wifi($booking);

$booking = new extrabed($booking);

結構型設計模式 裝飾器模式

說明 裝飾器模式 decorator pattern 允許 向乙個現有的物件新增新的功能,同時又不改變其結構 這種型別的設計模式屬於結構型模式,它是作為現有的類的乙個包裝。這種模式建立了乙個裝飾類,用來包裝原有的類,並在保持類方法簽名完整性的前提下,提供了額外的功能。實現方法 1.新建乙個介面 pu...

結構型設計模式 裝飾模式

裝飾模式動態地給乙個物件新增一些額外的職責,就增加功能來說,它比生成子類更靈活。也可以這樣說,裝飾模式把複雜類中的核心職責和裝飾功能區分開了,這樣既簡化了複雜類,有去除了相關類中重複的裝飾邏輯。裝飾模式沒有通過繼承原有類來擴充套件功能,但卻達到了一樣的目的,而且比繼承更加靈活,所以可以說裝飾模式是繼...

結構型設計模式 裝飾模式

先列舉乙個生活中的場景。假如我們買了一套房 買不起。但是是乙個毛胚房 指沒有任何裝修的房子 只能住。那麼我們為了讓房子變得溫馨舒適,就要進行裝修了,這樣沒有改變房子原本用來居住的功能,還增加了很多新的功能 比如做飯 那麼這一期的裝飾模式就是基於這樣的動機,在不改變原有功能的情況下新增新功能。那麼給乙...