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

有没有做游戏评测的网站亳州做企业网站

有没有做游戏评测的网站,亳州做企业网站,建设国家标准官方网站,服饰网站建设 e-idea目录 一、行为型模式 一句话概括行为型模式 1.1、迭代器模式 1.1.1、概述 1.1.2、案例实现 1.1.3、优缺点 1.1.4、使用场景 一、行为型模式 一句话概括行为型模式 行为型模式:类或对象间如何交互、如何划分职责,从而更好的完成任务. 1.1、迭代器…

目录

一、行为型模式

一句话概括行为型模式

1.1、迭代器模式

1.1.1、概述 

1.1.2、案例实现

1.1.3、优缺点

1.1.4、使用场景


一、行为型模式


一句话概括行为型模式

行为型模式:类或对象间如何交互、如何划分职责,从而更好的完成任务.

1.1、迭代器模式

1.1.1、概述 

提供一个聚合对象,内部通过迭代器来访问聚合对象中的一系列数据,而不暴露聚合对象的内部实现.

例如,现在有一个班级的学生(包装在一个 List 容器中的聚合元素),我需要按照学号拿到每一个学生,此时就需要把遍历这个班级的学生(List 容器)交给迭代器完成.

迭代器模式主要包含以下角色:

  • 抽象迭代器:定义访问和遍历聚合元素的接口,通常包含 hasNext()、next() 等方法.
  • 具体迭代器:实现抽象迭代器接口中定义的方法,完成聚合对象的遍历,记录遍历的当前位置.
  • 抽象聚合:定义存储、添加、删除聚合元素以及创建迭代器对象接口.
  • 具体聚合:实现抽象聚合类,返回一个具体的迭代器实例.

1.1.2、案例实现

实现上述学生案例.

/*** 学生类*/
public class Student {private String name;private int id;public Student() {}public Student(String name, int id) {this.name = name;this.id = id;}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", id=" + id +'}';}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getId() {return id;}public void setId(int id) {this.id = id;}
}
/*** 抽象迭代器: 学生迭代器接口*/
public interface StudentIterator {boolean hasNext();Student next();}
/*** 具体迭代器: 学生迭代器*/
public class StudentIteratorImpl implements StudentIterator{private List<Student> list;private int position;public StudentIteratorImpl(List<Student> list) {this.list = list;}@Overridepublic boolean hasNext() {return position < list.size();}@Overridepublic Student next() {Student current = list.get(position);position++;return current;}}
/*** 抽象聚合: 学生聚合接口*/
public interface StudentAggregation {void addStudent(Student student);void removeStudent(Student student);StudentIterator getStudentIterator();}
/*** 具体聚合: 学生聚合*/
public class StudentAggregationImpl implements StudentAggregation{private List<Student> list = new ArrayList<>();@Overridepublic void addStudent(Student student) {list.add(student);}@Overridepublic void removeStudent(Student student) {list.remove(student);}@Overridepublic StudentIterator getStudentIterator() {return new StudentIteratorImpl(list);}}
public class Client {public static void main(String[] args) {StudentAggregationImpl aggregation = new StudentAggregationImpl();aggregation.addStudent(new Student("曹操", 1));aggregation.addStudent(new Student("诸葛亮", 2));aggregation.addStudent(new Student("赵云", 3));StudentIterator studentIterator = aggregation.getStudentIterator();while(studentIterator.hasNext()) {Student student = studentIterator.next();System.out.println(student);}}}

执行结果如下:

1.1.3、优缺点

优点:

定义多种遍历方式:支持不同方式遍历一个聚合对象,可以在同一个聚合对象上顶一个多种遍历方式.

满足开闭原则:引入抽象层,增加新的聚合类和迭代器,都无需修改原有代码.

缺点:

增加了类的个数,一定程度上增加了系统复杂度.

1.1.4、使用场景

  1. 当需要为聚合对象提供多种遍历方式.
  2. 当需要为遍历不同的聚合结构提供一个统一的接口时.
  3. 当访问的聚合对象的内容无需要暴露其内部实现细节.

http://www.15wanjia.com/news/191014.html

相关文章:

  • 四川企业网站建设互联网公司排名2024
  • 视频网站开发的难点怎样写营销策划方案
  • 传奇页游排行榜湖南关键词优化排名推广
  • 建立自己的网站可以采用的方式有网站移动转换
  • jeecms 怎么建设网站专门做t恤的网站
  • 福建城乡建设网站莱芜金点子今天最新招聘电子版
  • 单页面企业网站莱芜可信赖的网络推广公司
  • 旅游网站设计方案怎么做科技公司官网设计
  • 在小说网站做编辑怎么找门户网站 流量
  • 公司网站怎么备案北京小程序网站制作
  • 扬州推广公司上海最大的seo公司
  • 天门市网站建设直播间网站开发制作
  • 果洛wap网站建设哪家好网站开发模板教务管理
  • 昆山开发区网站制作优化网站及商品排名怎么做
  • 网站开发费分摊多少年本地常州网站建设
  • 淘宝客网站如何做推广.net 建网站
  • 石家庄 网站开发自己做壁纸的网站
  • 想找做海报的超清图片去哪个网站找郑州网站建设招商
  • 黄冈地区免费网站推广平台青岛互联网企业
  • 类似12306网站开发网站有没有做等级测评怎么查看
  • 做网站分几种广西壮族自治区人口
  • 北京网站建设价钱有学做衣服的网站吗
  • 做男鞋的网站wordpress 如何更改主页
  • 临夏市建设局网站株洲房地产信息网
  • 南宁保洁网站建设wordpress 顶踩
  • 做电商的常去网站建设行政管理部门网站
  • 网站建设一般用什么编程益阳注册公司
  • 品牌建设公司网站中国建设银行网站个人收入证明
  • 北京云建站模板网页制作与网站建设自考
  • wordpress网站安装插件网站分站如何做