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

南京网站建设策划方案php网站开发步骤

南京网站建设策划方案,php网站开发步骤,随州网站建设多少钱,连云港外贸网站建设介绍 提供一中可以遍历聚合对象的方式。又称为: 游标cursor模式 迭代器模式角色 抽象聚合类(Aggregate):提供了聚合相关的方法,并提供获取迭代器的方法;具体集合类(ConcreteAggregate):实现了抽象聚合类;抽象迭代器(Iterator):…

介绍

  • 提供一中可以遍历聚合对象的方式。又称为: 游标cursor模式

迭代器模式角色

  • 抽象聚合类(Aggregate):提供了聚合相关的方法,并提供获取迭代器的方法;
  • 具体集合类(ConcreteAggregate):实现了抽象聚合类;
  • 抽象迭代器(Iterator):定义了迭代相关的方法;
  • 具体迭代器(ConcreteIterator): 实现了抽象迭代器的方法。

场景:

  • 需要以一种特定的方式遍历聚合对象;
  • 聚合对象:存储数据
  • 迭代器:遍历数据

开发中常见的场景

  • JDK内置的迭代器(List/Set)

代码实现

  • 抽象聚合类
/*** 抽象聚合类*/
public interface Aggregate {/*** 添加对象* @param obj*/void addObject(Object obj);/*** 移除对象* @param obj*/void removeObject(Object obj);/*** 获取迭代器方法* @return*/MyIterator iterator();
}
  • 抽象迭代器
/***	抽象迭代器*/
public interface MyIterator {/*** 当前游标置零*/void first(); /*** 将游标指向下一个元素*/void next();	/*** 是否存在下一个元素* @return*/boolean HasNext();  /*** 判断当前对象是否第一个元素* @return*/boolean isfirst();	/*** 判断当前对象是否最后一个元素* @return*/boolean isLast();		/*** 获取当期游标对象* @return*/Object getCurrentObj();	
}
  • 具体聚合类,内部类方法定义具体迭代器
public class ConcreteAggregate implements Aggregate {private List<Object> list = new ArrayList<Object>();/*** 添加对象* @param obj*/@Overridepublic void addObject(Object obj){list.add(obj);}/*** 移除对象* @param obj*/@Overridepublic void removeObject(Object obj){list.remove(obj);}	/*** 获取迭代器方法* @return*/@Overridepublic MyIterator iterator() {return new ConcreteIterator();} /*** 使用内部类定义迭代器,可以直接使用外部类的属性*/private class ConcreteIterator implements MyIterator{/*** 定义游标---用于记录遍历List容器时的位置*/private int cursor; /*** 当前游标置零*/@Overridepublic void first() {cursor=0;}/*** 获取当期游标对象*/@Overridepublic Object getCurrentObj() {return list.get(cursor);}	/*** 将游标指向下一个元素*/@Overridepublic void next() {if(cursor<list.size()){cursor++;}}/*** 是否存在下一个元素*/@Overridepublic boolean HasNext() {if(cursor<list.size()){return true;}return false;}/*** 判断当前对象是否第一个元素*/@Overridepublic boolean isfirst() {return cursor==0?true:false;}/*** 判断当前对象是否最后一个元素*/@Overridepublic boolean isLast() {return cursor==(list.size()-1)?true:false;}}
}
  • 测试调用
public static void main(String[] args) {Aggregate cma = new ConcreteMyAggregate();cma.addObject("aaa");cma.addObject("bbb");cma.addObject("ccc");MyIterator iterator=cma.iterator();while(iterator.HasNext()){System.out.println(iterator.getCurrentObj());iterator.next();}System.out.println("----------------------------------");cma.removeObject("bbb");MyIterator iter=cma.iterator();while(iter.HasNext()){System.out.println(iter.getCurrentObj());iter.next();}}



更多设计模式学习:

          设计模式(1):介绍
          设计模式(2):单例模式
          设计模式(3):工厂模式
          设计模式(4):建造者模式
          设计模式(5):原型模式
          设计模式(6):桥接模式
          设计模式(7):装饰器模式
          设计模式(8):组合模式
          设计模式(9):外观模式
          设计模式(10):享元模式
          设计模式(11):适配器模式
          设计模式(12):代理模式
          设计模式(13):模板方法模式
          设计模式(14):命令模式
          设计模式持续更新中…

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

相关文章:

  • 北京服装网站建设地址湖南高端网站建设
  • 网站建设报价网站建设报价单专业的移动网站建设公司排名
  • p2p网站建设报价快站app
  • 苏州制作企业网站的wordpress 固定导航菜单
  • 网站不换域名换空间宣武手机网站建设
  • 学校网站的平台用途及建设规划php 企业网站
  • 海口网站开发师招聘做网站展示软件
  • 买空间的网站有了代码如何建设网站
  • 云南住房建设厅网站四川手机网站设计
  • 网站建设提议宿迁东岸网络技术有限公司
  • 培训网站开发哪个好电商平台的运营模式
  • 阿里网站备案如何把网站和域名绑定
  • 免费网页代理ip地址网站做系统用哪个网站好
  • 网站栏目结构设计网站的公司
  • 私募股权基金网站建设检查网站的跳转路径是否清晰 哪里要优化
  • 网站布局建设做静态网站步骤
  • 如何创建网站下载怎么把网站提交给搜索引擎
  • 湖南响应式网站建设公司网站可以查出在哪里做的吗
  • 网页模板下载网站桐城住房建设网站
  • 优秀国内个人网站网址新手怎么样学做网站
  • 河北邯郸建网站wordpress同步社交
  • 做网站 蓝洋营销技巧培训
  • 网站开发安全搬瓦工vps wordpress
  • 影视自助建站河南省住房和城乡建设厅查询网站首页
  • 网站开发速成网站开发面试都会问什么问题
  • dede自动生成网站地图wordpress 代码 格式
  • 微网站开发流程图wordpress pcdotfan
  • 网站的推广费用东莞网络推广哪家好
  • 怎么给钓鱼网站做防红网站建设合同属于技术合同吗
  • 广州市用工备案在哪个网站做对网络营销的认识有哪些