文档章节

结构型模式之三:组合模式

奋斗到天明
 奋斗到天明
发布于 2015/08/27 16:38
字数 221
阅读 12
收藏 0

组合模式是相对简单,但是他在很多设计中使用,想SWT,eclipse的工作空间,等等。他基本上产生了一个继承树,能通过使用一个统一的方法访问。

类图

 

下面的代码实现了下面的树结构 

 

java代码

import java.util.List;
import java.util.ArrayList;
 
//Component
interface Component {
    public void show();
}
 
//Composite
class Composite implements Component {
 
  private List childComponents = new ArrayList();
 
  public void add(Component component) {
    childComponents.add(component);
  }
 
  public void remove(Component component) {
    childComponents.remove(component);
  }
 
  @Override
  public void show() {
    for (Component component : childComponents) {
      component.show();
    }
  }
}
 
//leaf
class Leaf implements Component {
  String name;
  
  public Leaf(String s){
    name = s;
  }
  
  public void show() {
    System.out.println(name);
  }
}
 
public class CompositeTest {
  public static void main(String[] args) {
    Leaf leaf1 = new Leaf("1");
    Leaf leaf2 = new Leaf("2");
    Leaf leaf3 = new Leaf("3");
    Leaf leaf4 = new Leaf("4");
    Leaf leaf5 = new Leaf("5");
 
    Composite composite1 = new Composite();
    composite1.add(leaf1);
    composite1.add(leaf2);
 
    Composite composite2 = new Composite();    
    composite2.add(leaf3);
    composite2.add(leaf4);
    composite2.add(leaf5);
 
    composite1.add(composite2);
    composite1.show();
  }
}

以上文章翻译自: http://www.programcreek.com/2013/02/java-design-pattern-composite/

© 著作权归作者所有

共有 人打赏支持
奋斗到天明
粉丝 18
博文 112
码字总数 82707
作品 0
昌平
程序员
设计模式总结(二)

设计模式可分为三种:创建型设计模式,结构型设计模式和行为型设计模式。 一、创建型设计模式 在设计模式中,创建型设计模式处理对象创建过程的设计模式,它根据实际情况来决定具体怎样创建对...

邵鸿鑫
2014/05/02
0
0
PHP设计模式(二):结构模式

上一篇我们介绍了设计模式的特性并且详细讲解了4种创建型模式,创建型模式是负责如何产生对象实例的,现在我们继续来给大家介绍结构型模式。(我的分享里面有) 一、什么是结构型模式? 结构...

juhenj
2014/05/15
641
1
创建型、结构型、行为型模式(1)

目的 创建型模式 Creational Pattern 结构型模式 Structural Patterns 行为型模式 Behavioral Pattern 概念 创建型模式,就是创建对象的模式,抽象了实例化的过程。它帮助一个系统独立于如何...

晨曦之光
2012/04/24
226
0
php设计模式(三):结构模式

一、什么是结构型模式? 结构型模式是解析类和对象的内部结构和外部组合,通过优化程序结构解决模块之间的耦合问题。 二、结构型模式的种类: 适配器模式 桥接模式 装饰模式 组合模式 外观模...

peasant
2016/05/26
15
0
设计模式之7个结构型模式

结构型模式概述 结构型模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构,就像搭积木,可以通过简单积木的组合形成复杂的、功能更为强大的结构。 结构型模式概述 结构...

randy_shandong
2017/01/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

kernel version does not match DSO version

错误信息: kernel version 384.11 does not match DSO version 384.130.0 原因是: cuda driver版本太低,不匹配DSO 简单有效的修复方法,升级nvidia driver, 步骤如下: 1. google seach ...

刘小米
今天
0
0
maven坐标和依赖

一、maven坐标详解 <groupId>com.fgt.club</groupId><artifactId>club-common-service-facade</artifactId><version>3.0.0</version><packaging>jar</packaging> maven的坐标元素说......

老韭菜
今天
1
0
springmvc-servlet.xml配置表功能解释

问:<?xml version="1.0" encoding="UTF-8" ?> 答: xml version="1.0"表示是此xml文件的版本是1.0 encoding="UTF-8"表示此文件的编码方式是UTF-8 问:<!DOCTYPE beans PUBLIC "-//SPRING//......

隐士族隐逸
今天
1
0
基于TP5的微信的公众号获取登录用户信息

之前讲过微信的公众号自动登录的菜单配置,这次记录一下在TP5项目中获取自动登录的用户信息并存到数据库的操作 基本的流程为:微信设置自动登录的菜单—>访问的URL指定的函数里获取用户信息—...

月夜中徘徊
今天
0
0
youTrack

package jetbrains.teamsys.license.runtime; 计算lis package jetbrains.ring.license.reader; 验证lis 安装后先不要生成lis,要把相关文件进行替换 ring-license-checker-1.0.41.jar char......

max佩恩
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部