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

学校怎么做网站wordpress 酒店预定

学校怎么做网站,wordpress 酒店预定,施工合同模板,wordpress 按别名✨这里是第七人格的博客✨小七#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.tj-hxxt.cn/news/138383.html

相关文章:

  • 网站制作怎么学去哪学二手网站建设
  • 广州公司摇号申请网站沈阳网站建设沈阳
  • 怎么做企业网站二维码扫描柳州建设网经济适用房
  • 大连网站优化方案目前网站在初级建设阶段 需要大量数据丰富
  • 微网站和wap深圳网站设计公司的
  • 重庆智能网站建设企业霞山手机网站建设公司
  • 网站设计行业前景重庆营销型网站建设沛宣
  • 常州模板网站建设咨询广点通广告平台
  • 能够做外贸的网站有哪些问题wordpress 注入 实战
  • wordpress新建关于我们页面seo厂商
  • 做企业形象网站linux 网站建设
  • 想建个图片网站山东网络推广图片
  • 新手做网站什么类型郑州市建设投资集团公司网站
  • 北京市昌平建设工程招标网站秦皇岛网站制作小程序开发
  • 网站修改器网站开发语言是什么
  • 网站开发 网络工程 哪个好网络如何推广
  • 哪家手表网站打开网站占空间
  • 深圳四站合一网站建设上饶网站建设推广
  • wordpress快速仿站教程网站建站流程有哪些
  • 上市公司做网站有什么用中国十大管理咨询公司
  • 配送网站开发cms模板下载
  • 建筑施工建设网站新昌网站制作
  • 崇州市建设局网站广州黄埔建网站
  • 微信放在网站根目录抖音电商
  • 漳州正规网站建设旅游门户网站模板
  • 网站做微信链接常州建站价格
  • 网站开发数据库问题装饰设计公司wordpress企业主题
  • 网站改版前端流程经验wordpress图片远程
  • wordpress建立私有网站抚宁网站建设
  • 建设银行安徽分行招聘网站绿色环保材料网站模板下载