zoukankan      html  css  js  c++  java
  • 设计模式之结构型(2)-组合模式(Composite)

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

    1.1  UML类图:

    image

    1.2  类与对象间的关系
    Component
    :部件抽象接口。
      ①  为组合的对象声明接口。
      ②  某些情况下,实现从此接口派生出所有类共有的默认行为。
      ③  定义一个接口可以访问及管理它的多个子部件(GetChild)。
      ④  如果必要,也可以在递归结构中定义一个接口访问它的父节点,并且实现它。
    Leaf:叶部件
      ①  在组合中表示叶节点对象,叶节点没有子节点。
      ②  定义组合中原接口对象的行为。
    Composite:组合类
      ①  定义有儿子节点(子部件)的部件的行为
      ②  存储儿子节点(子部件)
      ③  在Component接口中实现与子部件相关的操作

    典型调用顺序图

    组合模式-源码

    源码分析:

    1232017-09-07_115208

    (二) 项目案例分析    源码下载
    案例描述:假设某个公司的OA系统要计算员工和部门工资。部门有部门主管,其他下有多名员工。既要计算个体员工工资,又要计算部门开支公司。图形如下
    1111

  • 相关阅读:
    bzoj 1853: [Scoi2010]幸运数字 容斥
    bzoj 3545&&3551: [ONTAK2010]Peaks &&加强版 平衡树&&并查集合并树&&主席树
    bzoj 2331: [SCOI2011]地板 插头DP
    bzoj 3669: [Noi2014]魔法森林 动态树
    bzoj 2734: [HNOI2012]集合选数 状压DP
    bzoj 3751: [NOIP2014]解方程 同余系枚举
    bzoj 2594: [Wc2006]水管局长数据加强版 动态树
    bzoj 2049: [Sdoi2008]Cave 洞穴勘测 动态树
    bzoj 2209: [Jsoi2011]括号序列 splay
    bzoj 1223: [HNOI2002]Kathy函数 数位DP 高精度
  • 原文地址:https://www.cnblogs.com/lihuali/p/7483309.html
Copyright © 2011-2022 走看看