以單個物件的方式來對待一組物件
有一個介面類,有一個需實作的方法,其他所有類都實作它,在一個組合類的實作方法中回圈呼叫另外其他類的方法
有一個公共的介面類
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();
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/172523.html
標籤:PHP
