1. 程式人生 > 實用技巧 >[PHP] 組合模式-結構型設計模式

[PHP] 組合模式-結構型設計模式

以單個物件的方式來對待一組物件

有一個介面類,有一個需實現的方法,其他所有類都實現它,在一個組合類的實現方法中迴圈呼叫另外其他類的方法

有一個公共的介面類

interface Renderable
{
    public function render(): string;
}

組合類,也實現了介面

class Form implements Renderable
{
    private array $elements;
    public function render(): string
    {
        //組合類裡面迴圈呼叫其他類的同名方法
        foreach
($this->elements as $element) { $element->render(); } } public function addElement(Renderable $element) { $this->elements[] = $element; } }

子項類,也實現了介面

class InputElement implements Renderable
{
    public function render(): string
    {
    }
}
class TextElement implements Renderable { public function render(): string { } }

使用的時候,像使用單一類一樣使用組合類

$form = new Form();
$form->addElement(new TextElement());
$form->addElement(new InputElement());
$form->render();