组合模式(Composite)
来源:互联网 发布:卞正伟淘宝店 编辑:程序博客网 时间:2024/05/21 01:47
将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。
直接来看代码:
直接来看代码:
import java.util.List;//抽象的部件类描述将来所有部件共有的行为public abstract class Employer {private String name;public void setName(String name) {this.name = name;}public String getName() {return this.name;}//添加部件public abstract void add(Employer employer);//删除部件public abstract void delete(Employer employer);public List<Employer> employers;public void printInfo() {System.out.println(name);}public List<Employer> getEmployers() {return this.employers;}}
//相当于叶子, 组合部件类public class Programmer extends Employer {public Programmer(String name){setName(name);employers = null;}@Override//叶子节点不具备添加的能力,所以不实现public void add(Employer employer) {}@Override//叶子节点不具备添加的能力必然也不能删除public void delete(Employer employer) {}}
import java.util.ArrayList;//组合类public class ProjectManager extends Employer {public ProjectManager(String name) {setName(name);employers = new ArrayList<>();}@Override//添加节点 添加部件public void add(Employer employer) {employers.add(employer);}@Override//删除节点 删除部件public void delete(Employer employer) {employers.remove(employer);}}
public class Test {/** * @param args */public static void main(String[] args) {Employer pm = new ProjectManager("项目经理");Employer programmer1 = new Programmer("程序员一");Employer programmer2 = new Programmer("程序员二");pm.add(programmer1);pm.add(programmer2);List<Employer> ems = pm.getEmployers();for (Employer em : ems) {System.out.println(em.getName());}}}
0 0
- 组合模式(Composite)
- 组合模式(Composite)
- Composite(组合模式)
- 组合(Composite)模式
- 组合模式(Composite)
- composite(组合)模式
- Composite(组合)模式
- 组合模式(Composite)
- 组合(composite)模式
- 组合模式(Composite)
- 组合模式(Composite)
- 组合模式(Composite)
- 组合模式(Composite)
- 组合模式(Composite)
- Composite(组合模式)
- 组合模式(Composite)
- 组合模式(Composite)
- Composite(组合模式)
- 欢迎使用CSDN-markdown编辑器
- Geocoder模块编写
- Hadoop 1.x 单机(本地)模式安装部署
- ios真机调试出现matching the team ID .. were found问题
- 解决ScrollView和VerticalViewPager滑动事件冲突问题
- 组合模式(Composite)
- POJ 1083 && HDU 1050 Moving Tables(贪心)
- virt-install 参数
- 局域网qq聊天室
- Composer中的自动加载
- 日语学习之沪江N3基础 20150620 -6
- 为什么需要集合?集合的常用方法
- 判断单链表是否存在环以及求出环的入口
- 字典,数组,集合区别