当前位置: 首页 > news >正文

系统网站建设ppt模板专业网页制作编辑工具

系统网站建设ppt模板,专业网页制作编辑工具,上海建筑建材业招标公告,环保组织的相关信息一、说明 迭代器模式是一种行为设计模式,让你能在不暴露集合底层表现形式(列表、栈和树等)的情况下遍历集合中所有的元素。 (一) 解决问题 遍历聚合对象中的元素,而不需要暴露该对象的内部表示 (二) 使用场景 需要对聚合对象…

一、说明

迭代器模式是一种行为设计模式,让你能在不暴露集合底层表现形式(列表、栈和树等)的情况下遍历集合中所有的元素。

(一) 解决问题

遍历聚合对象中的元素,而不需要暴露该对象的内部表示

(二) 使用场景

  • 需要对聚合对象中元素进行遍历,并且不想暴露其内部结构
  • 减少程序中重复的遍历代码时
  • 能够遍历不同的甚至是无法预知的数据结构时

二、结构

  1. 迭代器(Iterator)接口声明了遍历集合所需的操作:获取下一个元素、获取当前位置和重新开始迭代等。
  2. 具体迭代器(ConcreteIterators)实现遍历集合的一种特定算法。迭代器对象必须跟踪自身遍历的进度。这使得多个迭代器可以相互独立地遍历同一集合。
  3. 集合(Collection)接口声明一个或多个方法来获取与集合兼容的迭代器。请注意,返回方法的类型必须被声明为迭代器接口,因此具体集合可以返回各种不同种类的迭代器。
  4. 具体集合(ConcreteCollections)会在客户端请求迭代器时返回一个特定的具体迭代器类实体。你可能会琢磨,剩下的集合代码在什么地方呢?不用担心,它也会在同一个类中。只是这些细节对于实际模式来说并不重要,所以我们将其省略了而已。
  5. 客户端(Client)通过集合和迭代器的接口与两者进行交互。这样一来客户端无需与具体类进行耦合,允许同一客户端代码使用各种不同的集合和迭代器。客户端通常不会自行创建迭代器,而是会从集合中获取。但在特定情况下,客户端可以直接创建一个迭代器(例如当客户端需要自定义特殊迭代器时)。

三、伪代码

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__doc__ = """
迭代器模式例:迭代树结构对象
"""from collections.abc import Iterable, Iteratorclass TreeNode:"""树节点类"""def __init__(self, value):self.value = valueself.children = []def add_child(self, child):self.children.append(child)def __str__(self, level=0):indent = " " * levelresult = f"{indent}{self.value}\n"for child in self.children:result += child.__str__(level + 4)return resultclass Tree(Iterable):"""聚合对象"""def __init__(self, root):self.root = rootdef __iter__(self) -> Iterator:return TreeIterator(self.root)class TreeIterator(Iterator):"""迭代器"""def __init__(self, node):self.stack = [node]def __next__(self):if not self.stack:raise StopIterationnode = self.stack.pop()self.stack.extend(reversed(node.children))return node.valueif __name__ == "__main__":"""ABDECF"""# 构建树形结构root = TreeNode("A")b = TreeNode("B")c = TreeNode("C")d = TreeNode("D")e = TreeNode("E")f = TreeNode("F")root.add_child(b)root.add_child(c)b.add_child(d)b.add_child(e)c.add_child(f)# 遍历树形结构tree = Tree(root)for value in tree:print(value)

四、优缺点

优点

  • 简化了聚合对象的接口:迭代器模式将遍历集合元素的责任分离出来,使得聚合对象和迭代器对象的职责更加清晰,聚合对象只需提供迭代器而无需关注遍历逻辑。
  • 隐藏了集合的内部结构:迭代器模式封装了集合的内部实现细节,使得客户端可以透明地访问集合元素,而不必关心集合的具体实现方式。

缺点

  • 不适合过于简单的集合:对于结构简单、元素数量少的集合,不如直接遍历集合来得简单直接。

【Python笔记】设计模式-CSDN博客

http://www.yayakq.cn/news/240737/

相关文章:

  • 免费建立个人网站苏州优化网站
  • 自然堂网站建设策划书视频网站建站免费
  • 关于互联网的网站网站怎样做全国地区推广
  • 有哪些做国际贸易的网站重庆seo代理价格
  • 做网站的费用如何写分录室内设计手绘图
  • 网站模拟课堂模式应该怎么做做网站还是做公众号
  • 哪些网站可以用来做百科参考微信网站开发文档
  • 网站建设的一些问题乐至建设局网站
  • 网站站点规划实例深圳宝安大型网站建设公司
  • 网页qq登录记录网站建设工程施工合同解除
  • 不备案的网站有那些江苏建湖网站建设
  • 海丰网站建设做网站编辑要会什么
  • 织梦下载网站模板积分商城网站建设
  • 专业做电子的外贸网站建设奉贤深圳网站建设公司
  • 怎么黑wordpress网站上不去首页seo要怎么办
  • 重庆网站搜索推广自己建网页
  • 新乡公司网站建设网站开发简历的项目经验
  • wordpress本地wampserver安装教程福州排名seo公司
  • php网站开发用什么ide外贸网站制作推广
  • 网站批量创建程序wordpress 禁止下载
  • 建设企业网站企业网上银行登录用个人电脑做服务器建网站
  • 正规网站建设的公司中山市seo点击排名软件价格
  • 成都网站建设设计wordpress如何连接图册
  • 点击一个网站跳转到图片怎么做如何建立营销型网站
  • 潍坊做网站公司wordpress字体更换
  • 做网站需要准备什么资料合肥做网站建设公司
  • 杭州cms建站模板wordpress主题制作下载地址
  • python做网站效率建站公司 源码申请
  • 团支部智慧团建网站石家庄商标设计公司
  • 网站建设推广费怎么做账什么是crm管理系统