裝飾器模式

2022-09-15 03:36:12 字數 1536 閱讀 3434

定義:可以動態地新增修改類的功能解析:乙個類提供了一項功能,如果要在修改並新增額外的功能,傳統的程式設計模式,需要寫乙個子類繼承它,並重新實現類的方法。使用裝飾器模式,僅需在執行時新增乙個裝飾器物件即可實現,可以實現最大的靈活性。

$canvas1

= new

imooc\canvas();

$canvas1

->init();

$canvas1

->adddecorator(new

\imooc\colordrawdecorator('green'));

$canvas1

->adddecorator(new

\imooc\sizedrawdecorator('16px'));

$canvas1

->rect(3,6

,4,12);

$canvas1

->draw();

<?php

namespace

imooc;

class

canvas

}$this

->

data

= $data;}

function

adddecorator(drawdecorator

$decorator)

function

beforedraw()

}function

afterdraw()

}function

draw()

echo "\n

";}$this

->afterdraw();

}function

rect($a1

, $a2

, $b1

, $b2)}}

}

<?php

namespace

imooc;

inte***ce

drawdecorator

<?php

namespace

imooc;

class

colordrawdecorator

implements

drawdecorator

function

beforedraw()'";

}function

afterdraw()

}

<?php

namespace

imooc;

class

sizedrawdecorator

implements

drawdecorator

function

beforedraw()'";

}function

afterdraw()

}

來自為知筆記(wiz)

裝飾器模式

大話設計模式 裝飾器模式 為已有功能動態地新增更多功能,當系統需要新功能,向舊的類中新增新功能,裝飾了原有類的核心職責和行為,而不改變它們 就像包裝袋一樣,有 的包裝袋包裝之前裝好東西的包裝袋 ifndef clothes h define clothes h include using names...

裝飾器模式

裝飾器設計模式 對真實物件動態的新增功能 抽象元件 author zhangjianbin public inte ce icar 俱體構件物件 真實的物件 author zhangjianbin class car implements icar 裝飾器物件 author zhangjianbin...

裝飾器模式

一 概念 裝飾模式能夠實現動態的為物件新增功能,是從乙個物件外部來給物件新增功能。通常給物件新增功能,要麼直接修改物件新增相應的功能,要麼派生對應的子類來擴充套件,抑或是使用物件組合的方式。顯然,直接修改對應的類這種方式並不可取。在物件導向的設計中,而我們也應該 盡量使用物件組合,而不是物件繼承來擴...