首页 > 其他分享 >Composite 组合模式(结构型模式)

Composite 组合模式(结构型模式)

时间:2022-11-23 13:36:19浏览次数:30  
标签:容器 Composite 代码 模式 对象 树形 结构型


意图:

将对象组成树形结构以表示“部分——整体”的层次结构。Composite使得对单个对象和组合对象的使用具有一致性。


要点:

1、Composite模式采用树形结构来实现普遍存在的对象容器,从而将“一对多"的关系转化为“一对一的关系”,使得客户代码可以一致地处理对象和对象容器,针需关心处理的是单个对象,还是组合对象容器。

2、将“客户代码与复杂的对象容器结构”解耦是Composite模式的核心思想,解耦之后,客户代码将与纯粹的抽象接口——而非对象容器的内部实现结构——发依赖关系,从而更能“应对变化”。

3、Composite模式在具体实现中,可以让父对象中的子对象反向追溯;如果父对象有频繁的遍历需求,可使用缓存技巧来改善效率。



标签:容器,Composite,代码,模式,对象,树形,结构型
From: https://blog.51cto.com/u_1236522/5881162

相关文章

  • Bridge 桥接模式(结构型模式)
    意图:将抽象部分与实现部分分离,使它们都可以独立的变化。要点:1、Bridge模式使用“对象间的组合关系”解耦了抽象和实现之间固有的绑定关系,使得抽象和实现可以沿着各自的维度......
  • Adapter 适配器模式(结构型模式)
    意图:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。要点:1、Adapter模式......
  • Prototype 原型模式(创建型模式)
    意图:使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。要点:1、Prototype模式同样用于隔离类对象的使用者和具体类型(易变类)......
  • C语言和设计模式(总结篇)
      设计模式的书相信很多人都看过。对于设计模式这样一种方法,相信不同的人有不同的理解。我在这里写的博客只是我个人对设计模式的粗浅认识。文中肯定存在很多的不足和不......
  • C语言和设计模式(之开篇)
      关于软件设计方面的书很多,比如《​​重构​​​》,比如《​​设计模式​​》。至于软件开发方式,那就更多了,什么极限编程、精益方法、敏捷方法。随着时间的推移,很多的......
  • 工厂模式
    工厂模式:创建者(工厂)和调用者(用户)分离。 设计原则之:开闭原则OCP(OpenClosedPrinciple):软件实体(包括类、模块、功能等)应该对扩展开放,但是对修改关闭。  1、简单工厂......
  • 软件设计模式白话文系列(十四)策略模式
    1、模式描述定义一个算法的系列,将其各个分装,并且使他们有交互性。策略模式使得算法在用户使用的时候能独立的改变。在Java中,从JDK1.8开始支持函数式编程,就是策略模式......
  • 数字展馆虚拟迎宾讲解员,开启展馆全新讲解模式!
    “虚拟迎宾讲解员”是一种利用数字技术与定制内容相结合的互动系统,是当下数字互动展厅中不可少的多媒体展项,它通过多媒体技术、虚拟成像等技术再现物体的真实三维图像,将解说......
  • 【数据库系统原理与设计】(五)关系数据理论与模式求精
    五. 关系数据理论与模式求精5.1问题提出 1. 数据冗余导致的问题: 冗余存储:信息被重复存储,导致浪费大量存储空间更新异常:当重复信息的一个副本被修改,所有副本都必......
  • CPP2nd CRTP Facade 模式
    书中源码不全,看看我这个?#include<iostream>#include<type_traits>#include<vector>#include<iterator>template<typenameDerived,typenameValue,typenameCa......