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

公司网站建设的方案雄县做网站的

公司网站建设的方案,雄县做网站的,北京网站开发哪家好,换空间网站备案文章目录 一、迭代器模式二、例子2.1 菜鸟例子2.1.1 定义迭代器接口2.1.2 定义迭代对象接口——用于返回一个迭代器2.1.3 实现 迭代对象 和 迭代器2.1.4 使用 2.2 JDK源码——ArrayList2.3 Spring源码——DefaultListableBeanFactory 三、其他设计模式 一、迭代器模式 类型&am…

文章目录

  • 一、迭代器模式
  • 二、例子
    • 2.1 菜鸟例子
      • 2.1.1 定义迭代器接口
      • 2.1.2 定义迭代对象接口——用于返回一个迭代器
      • 2.1.3 实现 迭代对象 和 迭代器
      • 2.1.4 使用
    • 2.2 JDK源码——ArrayList
    • 2.3 Spring源码——DefaultListableBeanFactory
  • 三、其他设计模式

一、迭代器模式

类型: 行为型模式
目的: 用于顺序访问集合对象的元素,使用者不需要知道集合对象的底层表示。

二、例子

2.1 菜鸟例子

2.1.1 定义迭代器接口

public interface Iterator {public boolean hasNext();public Object next();
}

2.1.2 定义迭代对象接口——用于返回一个迭代器

public interface Container {public Iterator getIterator();
}

2.1.3 实现 迭代对象 和 迭代器

public class NameRepository implements Container {public String[] names = {"Robert" , "John" ,"Julie" , "Lora"};@Overridepublic Iterator getIterator() {return new NameIterator();}private class NameIterator implements Iterator {int index;@Overridepublic boolean hasNext() {if(index < names.length){return true;}return false;}@Overridepublic Object next() {if(this.hasNext()){return names[index++];}return null;}     }
}

2.1.4 使用

public class IteratorPatternDemo {public static void main(String[] args) {NameRepository namesRepository = new NameRepository();for(Iterator iter = namesRepository.getIterator(); iter.hasNext();){String name = (String)iter.next();System.out.println("Name : " + name);}  }
}

2.2 JDK源码——ArrayList

private static class ArrayList<E> extends AbstractList<E> implements RandomAccess, java.io.Serializable {@Overridepublic Iterator<E> iterator() {return new ArrayItr<>(a);}
}
private static class ArrayItr<E> implements Iterator<E> {private int cursor;private final E[] a;ArrayItr(E[] a) {this.a = a;}@Overridepublic boolean hasNext() {return cursor < a.length;}@Overridepublic E next() {int i = cursor;if (i >= a.length) {throw new NoSuchElementException();}cursor = i + 1;return a[i];}
}

2.3 Spring源码——DefaultListableBeanFactory

public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFactory implements ConfigurableListableBeanFactory, BeanDefinitionRegistry, Serializable {private volatile List<String> beanDefinitionNames;private volatile Set<String> manualSingletonNames;public Iterator<String> getBeanNamesIterator() {CompositeIterator<String> iterator = new CompositeIterator();iterator.add(this.beanDefinitionNames.iterator());iterator.add(this.manualSingletonNames.iterator());return iterator;}
}

迭代器CompositeIterator

public class CompositeIterator<E> implements Iterator<E> {private final Set<Iterator<E>> iterators = new LinkedHashSet();private boolean inUse = false;public CompositeIterator() {}public void add(Iterator<E> iterator) {Assert.state(!this.inUse, "You can no longer add iterators to a composite iterator that's already in use");if (this.iterators.contains(iterator)) {throw new IllegalArgumentException("You cannot add the same iterator twice");} else {this.iterators.add(iterator);}}public boolean hasNext() {this.inUse = true;Iterator var1 = this.iterators.iterator();Iterator iterator;do {if (!var1.hasNext()) {return false;}iterator = (Iterator)var1.next();} while(!iterator.hasNext());return true;}public E next() {this.inUse = true;Iterator var1 = this.iterators.iterator();Iterator iterator;do {if (!var1.hasNext()) {throw new NoSuchElementException("All iterators exhausted");}iterator = (Iterator)var1.next();} while(!iterator.hasNext());return iterator.next();}public void remove() {throw new UnsupportedOperationException("CompositeIterator does not support remove()");}
}

三、其他设计模式

创建型模式
结构型模式

  • 1、设计模式——装饰器模式(Decorator Pattern)+ Spring相关源码

行为型模式

  • 1、设计模式——访问者模式(Visitor Pattern)+ Spring相关源码
  • 2、设计模式——中介者模式(Mediator Pattern)+ JDK相关源码
  • 3、设计模式——策略模式(Strategy Pattern)+ Spring相关源码
  • 4、设计模式——状态模式(State Pattern)
  • 5、设计模式——观察者模式(Observer Pattern)+ Spring相关源码
  • 6、设计模式——备忘录模式(Memento Pattern)
  • 7、设计模式——模板方法模式(Template Pattern)+ Spring相关源码
http://www.yayakq.cn/news/30615/

相关文章:

  • 无锡在线制作网站襄阳最新新闻消息
  • 网站域名迁移公告如何给网站加关键词
  • 网站开发php和python做网站好的书
  • 上海网站商城建设公司吗合肥地区网站制作
  • 电商网站 建设步骤网站平台建设需要哪些人员
  • 大气网站首页模板seo外链工具
  • 专业的集团网站建设网页浏览设置在哪里打开
  • 皮具网站建设crm订单管理系统免费
  • 网站建设择怎么创建视频网站
  • 网站定制开发加公众号美妆网站建设项目计划书
  • 有什么教做甜品的网站企业做网站服务费
  • 服装网站建设物流配送系统wordpress上传源代码
  • 网站建设加空间中国互联网企业排名前十名
  • 上海青浦区网站建设公司电子商务平台网站建设方式
  • 网站建设属于什么广告没功能网站模板
  • 开办 网站建设费 科目vps网站压缩
  • 多语种网站怎么做搜索引擎排名推广公司怎么找
  • cms 学校网站建设网站前的市场分析
  • 亦庄网站设计wordpress 建站 搜索
  • python做网站用什么框架门户网站demo下载
  • 德州做网站哪家好海珠网站建设公司
  • 免费做名片的网站河南省住房和城乡建设厅二维码网站
  • 网站 禁止ping网站index.php被修改
  • 电子商务网站建设侧重哪几个方面网站建设专用术语
  • wordpress个人资料站点读书wordpress
  • wordpress后台所有栏目都404整站优化关键词推广
  • 网站飘窗建设合同一个新的网站开发语言
  • 深圳网站设计价格表vs 2008 建立网站
  • 1网站建设公司wordpress 下载工具
  • 建设银行网站用户密码找回中联网站建设