首页 > 作文

【php设计模式】组合模式

更新时间:2023-04-06 22:54:50 阅读: 评论:0

定义:

  是用于把一组相似的对健美训练象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。

应用场景:

  部分、整体场景,如最近有什么考试树形菜单,文件、文件夹的管理

通俗解释:

  组合模式,就是在一个对象中包含其他对象,这些被包含的对象可能是终点对象(不再包含别的对象),也有可能是非终点对象(其内部还包含其他对象,或叫组对象),我们将对象称为节点,即一个根节点包含许多子节点,这些子节点有的不再包含子节点,而有的仍然包含子节点,以此类推。很明显,这是树形结构,终结点叫叶子节点,非终节点(组节点)叫树枝节点,第一个节点叫根节点。同时也类似于文件目录的结构形式:文件可称之为终节点,目录可称之为非终节点(组节点)。

实现如图所示的树形结构

interface node{    public function add(node $node);}class branch implements node{    static $i = 0;    public $name;    public $node_list;    public function __construct($name){        $this->name = $name;    }     public function add(node $node){        $this->node_list[] = $node;    }}class leaf implements node{    public $name;    public fun长江发源于ction __construsprayedct($name){        $this->name = $name;    }    public function add(node $node){        throw new exception("leaf don't add sub nodes");    }}$branch = new branch("主干");$branch_left = new branch("左树枝");$branch_right = new branch("右树枝");$leaf1 = new leaf("左第一片树叶");$leaf2 = new leaf("左第二片树叶");$branch->add($branch_left);$branch->add($branch_right);$branch_left->add($leaf1);$branch_left->add($leaf2);print_r($branch);

输出:

branch object(    [name] => 主干    [node_list] => array        (            [0] => branch object                (     大学全球排名               [name] => 左树枝                    [node_list] => array                        (                            [0] => leaf object                                (                                    [name] => 左第一片树叶                                )                            [1] => leaf object                                (                                    [name] => 左第二片树叶                                )                        )                )            [1] => branch object                (                    [name] => 右树枝                    [node_list] =>                )        ))

本文发布于:2023-04-06 22:54:49,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/14ca1cdc175b78f3209c298ebc0d567c.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:【php设计模式】组合模式.doc

本文 PDF 下载地址:【php设计模式】组合模式.pdf

标签:节点   对象   树枝   结构
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图