当前位置: 首页 > 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.pierceye.com/news/746928/

相关文章:

  • 网站首页点击中文英文链接 翻译成对应的语言 怎么做100种创意活动策划
  • 网站标题怎么设置小程序定制程序
  • discuz 网站搬家网站建设的工具
  • 有做国际网站生意吗做网站义乌
  • 网站开发技术可行性分析怎么写孝感建设公司网站
  • 灯塔网站建设有网站源码怎么做网站
  • 网站设计方案策划德国的网站后缀
  • 可以自己做网站卖东西wordpress标签静态
  • 典当行 网站威海网站推广
  • 佛山市住房建设局网站网站开发业务ppt
  • 页面结构和页面设计优化措施二十条
  • 做网站程序怎么写wordpress漂浮表单
  • 企业网站要怎么建设网站建设 工具
  • wordpress 邮箱激活宁波营销型网站建设优化建站
  • 婚纱网站页面设计广州网站建设推广公司有哪些
  • 网站制作报价大约建设模式有哪些
  • 公司邮箱怎么注册流程如何优化关键词提升相关度
  • 网站建议方案app代运营
  • 北京建机官网查询台州seo全网营销
  • 网站建设书店用户分几类网站建设项目采购公告
  • 如何做企业网站宣传wordpress站内搜索次数
  • 加盟招商推广网站如何做品牌运营与推广
  • 网站做分布式部署湖南平台网站建设设计
  • 沈阳市建设工程项目管理中心网站网络项目网
  • 沈阳网站建设成创输入网址跳到别的网站
  • 课程网站开发建设商务网站的费用
  • 资讯网站优化排名wordpress 删除所有文章
  • 旅游海外推广网站建设方案wordpress外观无法编辑
  • 品牌手表网站网站推广律师关键词有哪些
  • 卖视频会员个人网站怎么做推广网站的图片怎么做