zoukankan      html  css  js  c++  java
  • 组合模式

    定义:“将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。

    涉及角色:
      1.Component 是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理Component
    子部件。
      2.Leaf 在组合中表示叶子结点对象,叶子结点没有子结点。
      3.Composite 定义有枝节点行为,用来存储子部件,在Component接口中实现与子部件有关操作,如增加(add)和删除 (remove)等。
      
      适用性
      以下情况下适用Composite模式:
      1.你想表示对象的部分-整体层次结构
      2.你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。
      总结
    组合模式解耦了客户程序与复杂元素内部结构,从而使客户程序可以向处理简单元素一样来处理复杂元素。
    如果你想要创建层次结构,并可以在其中以相同的方式对待所有元素,那么组合模式就是最理想的选择。本章使用了一个文件
    系统的例子来举例说明了组合模式的用途。在这个例子中,文件和目录都执行相同的接口,这是组合模式的关键。通过执行相
    同的接口,你就可以用相同的方式对待文件和目录,从而实现将文件或者目录储存为目录的子级元素

    组合模式类图


    组合模式结构图


    详细代码请参考我的git:https://github.com/wzyxidian/DesignModel.git

  • 相关阅读:
    数据库表结构变动发邮件脚本
    .net程序打包部署
    无法登陆GitHub解决方法
    netbeans 打包生成 jar
    第一次值班
    RHEL6 纯命令行文本界面下安装桌面
    C语言中格式化输出,四舍五入类型问题
    I'm up to my ears
    How to boot ubuntu in text mode instead of graphical(X) mode
    the IP routing table under linux@school
  • 原文地址:https://www.cnblogs.com/wzyxidian/p/5095070.html
Copyright © 2011-2022 走看看