不想耗子喂汁,今天讲讲组合模式

本文介绍了组合模式的概念,它用于处理对象的集合,允许将单个元素和组合体对象统一处理。通过示例展示了如何在Python中实现组合模式,包括创建Simpleltem和Compositeitem类,以及如何处理添加、移除和迭代子对象。文章讨论了类的层次结构和抽象基类,强调了组合模式在绘图软件和类似场景中的应用。
摘要由CSDN通过智能技术生成

今天稍微说一下组合模式。

这边整理了一下有用的资料,想要的可以戳点这里!点这里!暗号:CSDN
在这里插入图片描述

组合模式

首先组合式模式是什么呢?
在这里插入图片描述

"组合模式”(Composite Pattern)可用来统合类体系中的两种对象:一种对象能够包含 体系中的其他对象,另一种不能。前者叫做“组合体”(composite),后者叫做“非组合体” (noncomposite),两者统称“组件,, (component)o按照传统的实现方式,这两种组件(一种是 单个对象,一种是对象群集)所对应的类都继承自同一个基类。.组合体与非组合体对象都具 备同一套“核心方法”(core method),此外,组合体对象还有用于增加、移除、遍历子对象 的其他方法。

该模式常用于实现Inkscape等绘图程序,这种程序需要有’群组”(group)与“解除群组” (ungroup)功能。用户可选取一批组件,并对其执行群组或解除群组操作,而这些组件中, 有的是单个元素(比如矩形),有的是组合体(比如由各种图形所构成的脸谱)。

现在就来看个实际的例子。我们在main()函数里创建一些对象,有单个元素,也有组 合体,然后,把它们全都打印出来。下面这段代码选自stationeryl.py,代码后面是程 序所输岀的信息。

def main():
pencil = Simpleltem("Pencil", 0.40)
ruler = Simpleltem("Ruler", 1.60)
eraser = Simpleltem("Eraser", 0.20)
pencilSet = Compositeltem("Pencil Set", pencil, ruler, eraser) box = Simpleltemf"Box", 1.00) boxedPencilSet = Compositeltem("Boxed Pencil Set", box, pencilSet) boxedPencilSet.add(pencil) for item in (pencil, ruler, eraser, pencilSet, boxedPencilSet)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值