码迷,mamicode.com
首页 > 其他好文 > 详细

十四、组合模式

时间:2017-09-30 15:16:04      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:一个   for   bst   ati   pos   main   his   extend   多个   

组合模式,顾名思义就是把多个功能相似的对象组合在一起就像是一个对象的功能一样,代码如下:

package test;

import java.util.ArrayList;
import java.util.List;

/*
 * 组合对象模式
 */
public class CompositeDemo {
    
    public static void main(String[] args) {
        CompositeParent compositeParent = new CompositeChild1("compositeParent");
        CompositeParent child1 = new CompositeChild1("child1");
        CompositeParent child2 = new CompositeChild1("child2");
        CompositeParent child3 = new CompositeChild1("child3");
        
        compositeParent.add(child1);
        compositeParent.add(child2);
        compositeParent.add(child3);
        
        for (CompositeParent row : compositeParent.rows) {
            row.say();
        }
    }
    
}

abstract class CompositeParent{
    public List<CompositeParent> rows = new ArrayList<>();
    public String name;
    public void say(){};
    public void add(CompositeParent compositeParent){};
}

class CompositeChild1 extends CompositeParent{
    
    public CompositeChild1(String name) {
        this.name = name;
    }
    
    @Override
    public void say() {
        System.out.println(name + " say that... ");
    }

    @Override
    public void add(CompositeParent compositeParent) {
        super.rows.add(compositeParent);
    }
    
}

以上, 我们看到多个child的功能被一个composite的对象组合到了一个list中,调用采用了迭代的方式。组合的方式其实可以又很多变化,不一定要按照这种方式,关键是了解多个类对象的功能转换成一个类对象的理念

十四、组合模式

标签:一个   for   bst   ati   pos   main   his   extend   多个   

原文地址:http://www.cnblogs.com/lay2017/p/7614628.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!