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

响应式品牌网站设计mvc5 网站开发美学 pdf

响应式品牌网站设计,mvc5 网站开发美学 pdf,二维码生成器小程序,如何让网站给百度收录迭代器模式 迭代器模式也是非常的简单#xff0c;定义如下#xff1a; 提供一个对象来顺序访问聚合对象中的一系列数据#xff0c;而不暴露聚合对象的内部表示。 相信大家都使用过类似下面的迭代器#xff1a; ListString list new ArrayList(); Iterat…迭代器模式 迭代器模式也是非常的简单定义如下 提供一个对象来顺序访问聚合对象中的一系列数据而不暴露聚合对象的内部表示。 相信大家都使用过类似下面的迭代器 ListString list new ArrayList(); IteratorString iterator list.iterator(); //list.iterator()方法返回的肯定是Iterator接口的子实现类对象 while (iterator.hasNext()) {System.out.println(iterator.next()); }如果在你的项目中需要对一个自定义的集合进行迭代遍历那么迭代器模式是非常需要学习的。迭代器模式主要包含以下角色 抽象聚合Aggregate角色定义存储、添加、删除聚合元素以及创建迭代器对象的接口。 具体聚合ConcreteAggregate角色实现抽象聚合类返回一个具体迭代器的实例。 抽象迭代器Iterator角色定义访问和遍历聚合元素的接口通常包含 hasNext()、next() 等方法。 具体迭代器Concretelterator角色实现抽象迭代器接口中所定义的方法完成对聚合对象的遍历记录遍历的当前位置。 案例实现 【例】定义一个可以存储学生对象的容器对象将遍历该容器的功能交由迭代器实现涉及到的类如下 代码如下 首先定义Student对象如下 public class Student {private String name;private int age;public Student(String name, int age) {this.name name;this.age age;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}Overridepublic String toString() {return Student{ name name \ , age age };} }然后定义Student类迭代器接口主要就判断是否还有下一个元素和获取下一个元素两个方法如下 public interface StudentIterator {boolean hasNext();Student next(); }然后实现学生类迭代器接口就好如下 public class StudentIteratoirImpl implements StudentIterator{private ListStudent list;private int position 0;public StudentIteratoirImpl(ListStudent list){this.list list;}Overridepublic boolean hasNext() {return positionlist.size();}Overridepublic Student next() {Student student list.get(position);position;return student;} }其实到这里我们就已经完成了迭代器功能了可以使用下面的代码测试迭代器如下 public class Main {public static void main(String[] args) {// 测试迭代器类ArrayListStudent students new ArrayList();students.add(new Student(张三,17));students.add(new Student(李四,19));students.add(new Student(王五,18));StudentIteratoirImpl iter new StudentIteratoirImpl(students);while (iter.hasNext()){Student s iter.next();System.out.println(s);}} }但是我们定义的是Student迭代器模型上面的迭代器仅仅是实现了基础功能如何需要的话我们可以将添加学生对象和删除学生对象的以及迭代的功能封装到一个容器类中当然这部分内容属于扩展内容如下 // 定义学生容器接口 public interface StudentContainer {// 添加学生的操作void addStudent(Student student);// 移除学生void removeStudent(Student student);// 获取学生迭代器StudentIterator getStudentIterator(); }// 实现学生容器接口 public class StudentContainerImpl implements StudentContainer{private ListStudent list new ArrayListStudent();Overridepublic void addStudent(Student student) {list.add(student);}Overridepublic void removeStudent(Student student) {list.remove(student);}Overridepublic StudentIterator getStudentIterator() {return new StudentIteratoirImpl(list);} }客户类测试 public class Main {public static void main(String[] args) {// 测试迭代器类ArrayListStudent students new ArrayList();students.add(new Student(张三,17));students.add(new Student(李四,19));students.add(new Student(王五,18));StudentIteratoirImpl iter new StudentIteratoirImpl(students);while (iter.hasNext()){Student s iter.next();System.out.println(s);}System.out.println(---------------------);// 测试学生容器类StudentContainerImpl studentContainer new StudentContainerImpl();studentContainer.addStudent(new Student(张三,17));studentContainer.addStudent(new Student(李四,19));studentContainer.addStudent(new Student(王五,18));StudentIterator studentIterator studentContainer.getStudentIterator();while (studentIterator.hasNext()){Student s studentIterator.next();System.out.println(s);}} }输出结果 Student{name‘张三’, age17} Student{name‘李四’, age19} Student{name‘王五’, age18} --------------------- Student{name‘张三’, age17} Student{name‘李四’, age19} Student{name‘王五’, age18} 优点 它支持以不同的方式遍历一个聚合对象在同一个聚合对象上可以定义多种遍历方式。在迭代器模式中只需要用一个不同的迭代器来替换原有迭代器即可改变遍历算法我们也可以自己定义迭代器的子类以支持新的遍历方式。迭代器简化了聚合类。由于引入了迭代器在原有的聚合对象中不需要再自行提供数据遍历等方法这样可以简化聚合类的设计。在迭代器模式中由于引入了抽象层增加新的聚合类和迭代器类都很方便无须修改原有代码满足 “开闭原则” 的要求。 缺点 增加了类的个数这在一定程度上增加了系统的复杂性。 使用场景 当需要为聚合对象提供多种遍历方式时。当需要为遍历不同的聚合结构提供一个统一的接口时。当访问一个聚合对象的内容而无须暴露其内部细节的表示时。 参考内容 传智播客设计模式相关笔记主要
http://www.zqtcl.cn/news/746928/

相关文章:

  • 北京网站建设公司哪个最好做投标网站条件
  • 网站建设的成本有哪些内容怎么样制作网页
  • 怎么做网站的seo排名知乎茂名网站制作公司
  • 建安证查询网站官方网站建设对比
  • 关于医院要求建设网站的请示市场推广12种推广渠道
  • php做不了大型网站深圳公司注册网址官方
  • 网站副标题怎么写杭州抖音代运营
  • 网站建设基本资料网站数据库连接出错
  • 娄底网站开发温州seo排名公司
  • 成都有哪些网站开发公司最新网推项目
  • 分享公众号的网站小型企业类网站开发公司
  • 青岛网站建设方案案例wordpress主题模板 国人
  • 哪家高端网站建设好贷款织梦网站模板
  • 北京网站建设公司价格最近中文字幕2018免费版2019
  • 帮人做设计的网站自己怎么做新闻开头视频网站
  • 网站开发搜索功能中国建设银行ie下载网站
  • 中山网站建设 骏域网站的形式有哪些
  • 深圳企业网站重庆建站塔山双喜
  • 征婚网站 女 做茶叶生意企业网站推广服务协议
  • 安徽省住房城乡建设厅网站官网英语机构网站建设方案
  • 电商建站价格深圳龙岗建站公司
  • 可以下载源程序的网站.htaccess wordpress
  • 国内优秀设计网站小程序推广方案
  • 网站构建是什么意思怎么做网站盗号
  • 学校网站建设行业现状wordpress怎么保存图片
  • 网站 框架网页建设title:(网站建设)
  • 素材网站推广方案安卓端开发
  • 网站制作可以询价么168推广
  • 河南城乡和住房建设厅网站网络营销的主要特点有哪些
  • 哪些网站可以做自媒体wordpress 左侧