影視網(wǎng)站模板怎么做青島 google seo
【裝飾模式】
裝飾模式,又稱裝飾器模式 或 裝飾者模式 或 油漆工模式,通過創(chuàng)建一個(gè)“裝飾對象”,在不改變原有類和使用繼承的情況下,動態(tài)地?cái)U(kuò)展一個(gè)對象的功能,比直接生成子類繼承更加靈活,可以通過多個(gè)不同的具體裝飾類,創(chuàng)建多個(gè)不同的行為組合。
結(jié)構(gòu):
- 抽象構(gòu)件(Component):是一個(gè)接口或者抽象類,定義核心的原始對象,用來規(guī)范準(zhǔn)備接收附加責(zé)任的對象。
- 具體構(gòu)件(ConcreteComponent):實(shí)現(xiàn)抽象構(gòu)件,通過裝飾角色為其添加一些職責(zé)。
- 抽象裝飾角色(Decorator):關(guān)聯(lián)抽象構(gòu)件,定義裝飾器的屬性和新的方法,包含具體構(gòu)件的實(shí)例,可以通過其子類擴(kuò)展具體構(gòu)件的功能。
- 具體裝飾角色(ConcreteDecorator):抽象裝飾的具體實(shí)現(xiàn),并給具體構(gòu)件對象添加附加的責(zé)任。
示例:下面以一個(gè)訂單服務(wù)為例,在不改動原有支付方法 payOrder() 的情況下,要求支付成功后給用戶增加積分,這里用裝飾模式來實(shí)現(xiàn),目的是對 payOrder() 方法進(jìn)行裝飾,擴(kuò)展功能:
-
訂單服務(wù)接口 抽象構(gòu)件 OrderServiceInterface.php :
<?php
namespace app\design08\controller;
//訂單服務(wù)接口 抽象構(gòu)件
interface OrderServiceInterface
{//創(chuàng)建訂單public function c