设计模式组合

组合模式


设计原则:遵循依赖倒置、开闭原则,破坏接口隔离
常用场景:当有一个结构可以组合成树形结构,且需要向客户端提供一致的操作接口,使得客户端操作忽略简单元素与复杂元素
使用概率:30%
复杂度:中
变化点:节点的数量
选择关键点:对外提供一致操作接口的结构是否可转化为树形结构
逆鳞:结构不稳定或结构中的节点有递归关系



主要思想:
体现部分与整体的层次结构
一般都持有多个本类型的其它对象实例 常见的就是树形结构



public class TreeNode {
    private String name;

    //持有本类型的其他对象
    private TreeNode parent;
    private TreeNode left;
    private TreeNode right;


    //体现整体结构  整体都有删除左右等等方法
    public void remodeLeft() {
        this.left = null;
    }

    public void remodeRight() {
        this.right = null;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public TreeNode getParent() {
        return parent;
    }

    public void setParent(TreeNode parent) {
        this.parent = parent;
    }

    public TreeNode getLeft() {
        return left;
    }

    public void setLeft(TreeNode left) {
        this.left = left;
    }

    public TreeNode getRight() {
        return right;
    }

    public void setRight(TreeNode right) {
        this.right = right;
    }
}

 

转载于:https://www.cnblogs.com/zhaojj/p/7772981.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值