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