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

精仿虎嗅网织梦网站模板广州seo营销培训

精仿虎嗅网织梦网站模板,广州seo营销培训,html做的好看的网站,神经网络跟网络架构一、说明 迭代器模式是一种行为设计模式,让你能在不暴露集合底层表现形式(列表、栈和树等)的情况下遍历集合中所有的元素。 (一) 解决问题 遍历聚合对象中的元素,而不需要暴露该对象的内部表示 (二) 使用场景 需要对聚合对象…

一、说明

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

(一) 解决问题

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

(二) 使用场景

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

二、结构

  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.15wanjia.com/news/56907.html

相关文章:

  • 牡丹区住房和城乡建设局网站广告联盟平台挂机赚钱
  • 手机网站底部导航重庆百度快速优化
  • 湖南省住房与城乡建设厅网站dz论坛seo设置
  • 有模板如何做网站谷歌chrome安卓版
  • 域名 空间 网站百度收录快的发帖平台
  • 广告公司微网站建设头条权重查询站长工具
  • 广州市网站建设制作费用如何免费注册网站
  • 无锡网站开发befen全媒体运营师报考官网在哪里
  • seo怎么做网站内容北京网站营销与推广
  • 广告设计公司业务员如何开发客户企业优化推广
  • wordpress安装ssl后网站404站长统计幸福宝下载
  • 全平台内容生成系统长沙seo网站推广
  • 网站前台后台模板微信软文范例大全100
  • 西部数码网站管理助手serv-u默认密码百度预测大数据官网
  • java做网站编程青岛网络推广公司
  • 做搜狗网站排名软件什么是软文推广
  • 莱特币做空网站如何建立和设计公司网站
  • php和什么语言做网站俄罗斯搜索引擎yandex
  • 小程序代码教程武汉seo优化排名公司
  • 陕西住房和城乡建设部网站首页网络推广平台有哪些
  • 注册营业执照网上申请入口移动端排名优化软件
  • 拼团购物网站开发互联网营销师题库
  • 建设银行网站打不开班级优化大师下载安装
  • 优化网站收费标准seo网站诊断流程
  • 正品网购衣服十大网站渠道推广平台
  • 如何下载网站模板文件在哪里广告营销公司
  • 织梦网站程序下载seo排名怎么做
  • 自己做的网站可以挂在哪里网站优化排名易下拉排名
  • 网站制作开发免费打广告网站
  • 什么做网站赚钱广告投放平台有哪些