zoukankan      html  css  js  c++  java
  • 2018.4.20 设计模式之组合模式

    什么是组合模式?

        组合模式是指将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。
       有时候又叫做部分-整体模式,是用于把一组相似的对象当作一个单一的对象。它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。
    

    组合模式的作用

      组合模式的目的是:让客户端不再区分操作的是组合对象还是叶子对象,而是以一个统一的方式来操作。实现这个目标的关键之处,是设计一个抽象的组件类,让它可以代表组合对象和叶子对象。这样一来,客户端就不用区分到底是组合对象还是叶子对象了,只需要全部当成组件对象进行统一的操作就可以了。
    
    统一元素与部分整体,简化处理代码。
    将元素内部结构同处理程序解耦,从而一致的对待元素与部分整体。
    实际上,组合模式在应用中其实非常广泛,像文件系统、企业结构等都可以看做是组合模式的典型应用。
    Component:定义成接口或者抽象类,是元素与不部分整体的父类。
    Leaf:叶子节点,定义了基本元素的特征,继承自Component父类,是整体最基本的组成部分。
    Composite:部分整体或者容器,继承或实现自Component父类。内部包含Composite或者Leaf的聚合,用来保存内部的组织结构,并且针对该聚合有相应的操作方法。
    

    组合模式角色

    组合部件(Component):它是一个抽象角色,为要组合的对象提供统一的接口。
    叶子(Leaf):在组合中表示子节点对象,叶子节点不能有子节点。
    合成部件(Composite):定义有枝节点的行为,用来存储部件,实现在Component接口中的有关操作,如增加(Add)和删除(Remove)。
    
  • 相关阅读:
    对比Microsoft RemoteFX与VMware PCoIP
    SATA port selector and port muliplier 产品
    从并行 SCSI 到串行 SCSI
    转:快速远程桌面——Nomachine NX(ubuntu 10.10安装NX详解)
    全面分析:SATA2硬盘的发展和优缺点
    axel vpc
    转:网络带宽测量工具之iperf
    转:使用测试工具iPerf监控无线网络性能
    远程维护Helpdesk应用VNC
    QOS定义
  • 原文地址:https://www.cnblogs.com/qichunlin/p/8893878.html
Copyright © 2011-2022 走看看