第十一篇 设计模式--组合模式
来源:互联网 发布:系统修复软件 编辑:程序博客网 时间:2024/05/16 19:28
定义:将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。
代码:
package composite_model;import java.util.ArrayList;/** * @author naivor *组合模式-场景类 */public class CompositeModel {public static void main(String[] args) {Component root=new Composite("root"); //长出根节点root.addComponent(new Leaf("leaf A")); //根节点长出叶AComponent compositeB=new Composite("composite B");root.addComponent(compositeB);//根节点长出枝节点BcompositeB.addComponent(new Leaf("leaf AA")); //枝节点B长出叶AAComponent componentBB=new Composite("composite BB");compositeB.addComponent(componentBB);//枝节点B长出枝节点BBroot.operate();}}/** * * @author naivor *组合模式-节点抽象类 */abstract class Component {private String name;public Component() {}public Component(String name) {this.name = name;}public void addComponent(Component component) {};public void removeComponent(Component component) {};public abstract void operate();}/** * * @author naivor *组合模式-叶节点类 */class Leaf extends Component {public Leaf() {}public Leaf(String name) {super(name);}@Overridepublic void operate() {//叶节点的业务逻辑}}/** * * @author naivor *组合模式-枝节点类 */class Composite extends Component {private ArrayList<Component> coms=new ArrayList<Component>();public Composite() {}public Composite(String name) {super(name);}@Overridepublic void addComponent(Component component) {coms.add(component);}@Overridepublic void removeComponent(Component component) {coms.remove(component);}@Overridepublic void operate() {for (Component component : coms) {component.operate();}//枝节点的业务逻辑}}
0 0
- 第十一篇 设计模式--组合模式
- 第十一篇:迭代器模式
- 设计模式:组合模式
- 设计模式-----组合模式
- 设计模式 组合模式
- 设计模式--组合模式
- 设计模式---组合模式
- 【设计模式】组合模式
- 设计模式 - 组合模式
- 设计模式----组合模式
- 设计模式 - 组合模式
- 设计模式:组合模式
- 设计模式 - 组合模式
- 设计模式-组合模式
- 设计模式 - 组合模式
- 【设计模式】组合模式
- 设计模式--组合模式
- 设计模式-组合模式
- head first series 读书记录
- 智能视频监控中的多目标跟踪分析
- 线程打印
- 注解 annotation
- Attention please! 字符串操作函数strtok的第一个参数
- 第十一篇 设计模式--组合模式
- Mysql 列转行统计查询 、行转列统计查询
- JSON数据与Java对象相互转换
- Object-c创建自定义类
- 如何比对两个版本的Word文档
- Spring官方网站改版后的下载地址
- dojo famater 自定义转换颜色
- 批量添加hadoop节点,初始化hadoop机器
- distutils.errors.DistutilsSetupError: cannot locate an Oracle software insta