[PHP] 组合模式-结构型设计模式
2023-02-18 15:36:33 时间
以单个对象的方式来对待一组对象
有一个接口类,有一个需实现的方法,其他所有类都实现它,在一个组合类的实现方法中循环调用另外其他类的方法
有一个公共的接口类
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();
相关文章
- [PHP] Yaf框架的简单安装使用
- [PHP] 链表数据结构(单链表)
- [PHP] 重回基础(IO流)
- [PHP] 重回基础(Array相关函数)
- [PHP] 重回基础(date函数和strtotime函数)
- [HTML5] Canvas绘制简单图片
- [HTML5] Canvas绘制简单形状
- [Redis] redis数据备份恢复与持久化
- [PHP] 商品类型规格属性后台管理(代码流程备忘)
- [PHP] 看博客学习观察者模式
- [PHP] 看博客学习插入排序
- [PHP] 排序和查找算法
- [css3] 看博客学习别人的旋转的星球
- [Redis]Redis的数据类型
- [Redis] redis在centos下安装测试
- [产品设计]电商设计知乎总结
- [PHP] B2B2C商品模块数据库设计
- [css] css3 中的新特性加强记忆
- [Laravel] Laravel的基本数据库操作部分
- [Laravel] Laravel的基本使用