组合模式

2020-05-20  本文已影响0人  simplerandom
public abstract class ZuZhi {
    String name;

    String desc;

    public void add(ZuZhi zuZhi) {
        System.out.println("ZuZhi类不能add");
    }

    public void remove(ZuZhi zuZhi) {
        System.out.println("ZuZhi类不能remove");
    }

    public abstract void print();

    public ZuZhi(String name, String desc) {
        this.name = name;
        this.desc = desc;
    }

    public String getName() {
        return name;
    }

    public String getDesc() {
        return desc;
    }
}
public class University extends ZuZhi {
    ArrayList<ZuZhi> arrayList=new ArrayList<>();

    public University(String name, String desc) {
        super(name, desc);
    }

    @Override
    public void print() {
        System.out.println(getName());
        for (ZuZhi zuZhi : arrayList) {
            zuZhi.print();
        }

    }

    @Override
    public void add(ZuZhi zuZhi) {
        arrayList.add(zuZhi);
    }

    @Override
    public void remove(ZuZhi zuZhi) {
        arrayList.remove(zuZhi);
    }

}
public class College extends ZuZhi {
    ArrayList<ZuZhi> arrayList=new ArrayList<>();
    public College(String name, String desc) {
        super(name, desc);
    }

    @Override
    public void print() {
        System.out.println(getName());
        for (ZuZhi zuZhi : arrayList) {
            zuZhi.print();
        }
    }

    @Override
    public void add(ZuZhi zuZhi) {
        arrayList.add(zuZhi);
    }

    @Override
    public void remove(ZuZhi zuZhi) {
        arrayList.remove(zuZhi);
    }
}
public class Department extends ZuZhi {
    public Department(String name, String desc) {
        super(name, desc);
    }

    @Override
    public void print() {
        System.out.println(getName());
    }
}

测试

public class Test {
    public static void main(String[] args) {
        Department hanghai = new Department("航海技术", "开船");
        Department lunji = new Department("轮机工程", "维修");
        College hanghaicollege = new College("航海学院", "杨神化666");
        Department yingyu = new Department("英语", "yingyu");
        Department eyu = new Department("俄语", "eyu");
        College waiyucollege = new College("外语学院", "妹子众多");
        hanghaicollege.add(hanghai);
        hanghaicollege.add(lunji);
        waiyucollege.add(yingyu);
        waiyucollege.add(eyu);
        University university = new University("集美大学", "极美大学");
        university.add(hanghaicollege);
        university.add(waiyucollege);
        university.print();
    }
}
上一篇 下一篇

猜你喜欢

热点阅读