package com.cheng.bigtalkdesignpatterns.composite;
import java.util.ArrayList;
import java.util.List;
/**
* 具体公司类
*/
public class ConcreteCompany extends Company {
private List<Company> children = new ArrayList<>();
public ConcreteCompany(String _name) {
super(_name);
}
@Override
public void add(Company c) {
children.add(c);
}
@Override
public void remove(Company c) {
children.remove(c);
}
@Override
public void display(int depth) {
System.out.println(getStrByDepth(depth) + name);
for (Company component : children) {
component.display(depth + 2);
}
}
private String getStrByDepth(int depth) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < depth; i++) {
sb.append("-");
}
return sb.toString();
}
@Override
public void lineOfDuty() {
for (Company component : children) {
component.lineOfDuty();
}
}
}