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

网站建设机器人空间 网站

网站建设机器人,空间 网站,网站怎么算抄袭,都芳漆中文网站建设✨这里是第七人格的博客✨小七#xff0c;欢迎您的到来~✨ #x1f345;系列专栏#xff1a;设计模式#x1f345; ✈️本篇内容: 迭代器模式✈️ #x1f371; 本篇收录完整代码地址#xff1a;https://gitee.com/diqirenge/design-pattern #x1f371; 楔子 很久…✨这里是第七人格的博客✨小七欢迎您的到来~✨ 系列专栏设计模式 ✈️本篇内容: 迭代器模式✈️ 本篇收录完整代码地址https://gitee.com/diqirenge/design-pattern 楔子 很久没有更新文章了一方面是工作比较忙另一方面家里又迎来了新的小生命短暂休整一下后小七又决定出来卖艺了。今天我们聊一下迭代器模式。 需求背景 很多公司的组织架构都是树形结构每一个节点都是一个部门每一个部门包含很多员工现在需要遍历这些员工考虑使用树的深度遍历。 分析设计 在实现迭代器模式之前我们可以先参考下 Java 中 List 类是如何实现迭代器的类图如下 开发会按照这个模式来实现这个模式主要分为以下⼏块 Collection集合⽅法部分⽤于对⾃定义的数据结构添加通⽤⽅法 add 、 remove 、 iterator 等核⼼⽅法。 Iterable提供获取迭代器这个接⼝类会被 Collection 继承。 Iterator提供了两个⽅法的定义 hasNext 、 next 会在具体的数据结构中写实现⽅式。 UML图 根据分析设计我们可以先画一个简单的UML图后面通过UML图编码 模块名称 iterator 模块地址 https://gitee.com/diqirenge/design-pattern/tree/master/src/main/java/com/run2code/design/behavioral/iterator 模块描述 迭代器模式代码示例 代码实现 1、参考jdk的Iterator编写迭代器接口 ①、是否有下一个节点 ②、获取下一个节点 /*** 迭代器接口主要提供hasNext、next两个方法参考jdk的Iterator设计* see java.util.Iterator 接口* 关注公众号【奔跑的码畜】一起进步不迷路** author 第七人格* date 2024/01/30*/ public interface IteratorE {boolean hasNext();E next();} 2、参考jdk的Iterable编写Iterable提供一个获取迭代器的方法 /*** 提供获取迭代器的方法参考jdk的Iterable设计* see java.lang.Iterable 接口* 关注公众号【奔跑的码畜】一起进步不迷路** author 第七人格* date 2024/01/30*/ public interface IterableT {IteratorT iterator();} 3、参考jdk的Collection编写集合接口 该接口继承Iterable拓展了基础的添加和删除方法 /*** 集合接口参考jdk的Collection设计* see java.util.Collection 接口* 关注公众号【奔跑的码畜】一起进步不迷路** author 第七人格* date 2024/01/30*/ public interface CollectionE extends IterableE {boolean add(E e);boolean remove(E e);IteratorE iterator();} 4、编写员工类 /*** 员工类* 关注公众号【奔跑的码畜】一起进步不迷路** author 第七人格* date 2024/01/30*/ public class Employee {private String name;private String position;public Employee(String name, String position) {this.name name;this.position position;}public String getName() {return name;}public String getPosition() {return position;} } 5、编写组织类 实现Iterable接口编写iterator()方法 /*** 组织类* 实现Iterable接口的iterator()方法返回一个Iterator实例* 关注公众号【奔跑的码畜】一起进步不迷路** author 第七人格* date 2024/01/30*/ public class Organization implements IterableEmployee {private ListEmployee employees;public Organization() {employees new ArrayList();}public void addEmployee(Employee employee) {employees.add(employee);}Overridepublic IteratorEmployee iterator() {return new OrganizationIterator(employees);}} 6、编写组织器迭代类 主要完成hasNext和next两个方法的逻辑编写 /*** 组织迭代器类* 实现Iterator类用于遍历组织结构中的员工。* 关注公众号【奔跑的码畜】一起进步不迷路** author 第七人格* date 2024/01/30*/ public class OrganizationIterator implements IteratorEmployee {private ListEmployee employees;private int currentIndex;public OrganizationIterator(ListEmployee employees) {this.employees employees;currentIndex 0;}Overridepublic boolean hasNext() {return currentIndex employees.size();}Overridepublic Employee next() {return employees.get(currentIndex);} } 7、编写测试类 /*** 测试迭代器模式* 关注公众号【奔跑的码畜】一起进步不迷路** author 第七人格* date 2024/01/30*/ public class IteratorTest {Testpublic void testIterator() {Organization organization new Organization();organization.addEmployee(new Employee(张三, 经理));organization.addEmployee(new Employee(李四, 工程师));organization.addEmployee(new Employee(王五, 设计师));IteratorEmployee iterator organization.iterator();while (iterator.hasNext()) {Employee employee iterator.next();System.out.println(姓名 employee.getName() 职位 employee.getPosition());}} } 8、测试结果 姓名张三职位经理 姓名李四职位工程师 姓名王五职位设计师 实现要点 迭代器模式实现要点如下 抽象迭代器Iterator定义了遍历集合对象所需的接口通常包括hasNext()和next()方法用于判断是否还有下一个元素以及获取下一个元素。具体迭代器Iterator实现抽象迭代器接口的具体类负责具体的遍历逻辑。它保存了当前遍历的位置信息并可以根据需要向前或向后遍历集合元素。聚合对象Iterable是迭代器模式的目标对象通常是一个集合或容器包含了多个元素。聚合对象提供创建具体迭代器的方法以便外部可以通过迭代器访问其内部的元素。隔离集合的遍历和实现迭代器模式将集合的遍历方式与集合的内部表示分离使得可以在不暴露集合内部结构的情况下访问集合中的元素。增加遍历的灵活性通过迭代器模式可以灵活地为集合对象增加不同的遍历方法而不需要修改集合对象的代码。支持多种遍历方式迭代器模式允许定义多种遍历方式例如顺序遍历、逆序遍历等只需要提供相应的具体迭代器实现即可。简化外部操作外部代码只需通过迭代器的接口与集合交互无需关心集合的内部结构和遍历细节简化了外部代码的复杂性。 总结 迭代器模式遵循开闭原则对扩展开放对修改封闭。当需要增加新的遍历方式时只需添加新的具体迭代器类无需修改现有代码。每个类只关注一项任务也符合单一职责原则。 面对对象面对君不负代码不负卿
http://www.hkea.cn/news/14568069/

相关文章:

  • 兰溪网站建设建设官方网站的请示
  • 设计师经常上的网站wordpress固定链接文章发布失败
  • 免费crm客户管理系统济南网站优化小黑
  • 怎么做虚拟的网站wordpress logo大小
  • 某集团中英文双语网站源码广州网站推广策划
  • 现在做一个网站大概多少钱wordpress会员无广告
  • 网站建设官网型好呢还是商城型淘客网站怎么建设
  • 磁力网站怎么做的wordpress欢迎页面模板下载
  • php网站开发工程师认证证书泰安最新通告今天
  • 微转app是用网站做的吗响应式网站改为自适应
  • 网站推广易网宣wordpress国内网站
  • 衡阳企业网站建设简单网页设计作业
  • 合肥网站建设兼职诸暨有哪些好网站制作公司
  • 宁波做网站优化做网站找谁
  • 做一个销售网站需要多少钱php mysql购物网站开发
  • 专业网站建设加盟合作万网官网登录
  • 设计教程网站推荐七星彩的网站怎么做的
  • 网站开发哪里便宜上海网站建设服务市价
  • 北京网站建设 shwl网站建设教程多少钱
  • 企业网站产品内页优化风铃网做微网站要钱吗
  • 网页制作网站建设实战大全小企业一键做网站
  • 网站关键词描述重庆建设工程信息网怎么查证
  • 网站开发目的和意义企业网站前端建设
  • 宁波比较好的网站公司ztjs
  • wordpress会员推广下载支付插件哈尔滨关键词优化排名
  • 成品人和精品人的区别在哪约上海搜索排名优化
  • 有在网上找做网站的人么织梦网站栏目无法生成
  • 1号网站建设科技类网站设计
  • 网站备案信息更改审核要多久做网站的分辨率
  • 织梦做信息分类网站中山公司注册