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

网站宣传需要多少钱网站商城微信支付接口申请

网站宣传需要多少钱,网站商城微信支付接口申请,丝足网站的建设,wordpress登录 小工具目录 一、基础概念 二、UML类图 三、角色设计 四、案例分析 五、总结 一、基础概念 迭代器模式是一种常用的设计模式#xff0c;它主要用于遍历集合对象#xff0c;提供一种方法顺序访问一个聚合对象中的各个元素#xff0c;而又不暴露该对象的内部表示。 举个简单的…目录 一、基础概念 二、UML类图 三、角色设计 四、案例分析 五、总结 一、基础概念 迭代器模式是一种常用的设计模式它主要用于遍历集合对象提供一种方法顺序访问一个聚合对象中的各个元素而又不暴露该对象的内部表示。 举个简单的比喻聚合对象像一个存放苹果的篮子迭代器就像篮子边上的搬运工专门负责把苹果一个一个取出来。客户端只需要找到搬运工然后不停地让他取出苹果就可以了而不需要关心篮子里面是怎么存放的。这样既方便客户端使用也屏蔽了聚合对象内部的复杂性 二、UML类图 三、角色设计 角色描述抽象聚合角色定义存创建、添加、获取等迭代器对象的接口具体聚合角色抽象聚合角色的实现类返回一个具体迭代器实例抽象迭代器角色定义访问和遍历聚合元素的接口通常包裹hashNext()和next()方法具体迭代器角色实现抽象迭代器接口中所定义的方法完成聚合对象的遍历记录遍历的当前为止客户端角色用于使用迭代器遍历聚合对象 四、案例分析 用迭代器模式模拟一个学生管理系统主要内容如下 1、定义Student类表示学生信息。 2、定义StudentAggregate接口作为学生集合的抽象接口。 3、实现StudentAggregateImpl类具体的学生集合使用List存储Student。 4、定义Iterator接口规定迭代器的通用方法。 5、实现StudentIterator类具体的学生迭代器。 6、在客户端代码中通过迭代器遍历StudentAggregateImpl中的学生集合。 通过迭代器模式实现对学生集合的遍历同时隐藏学生集合的具体实现细节示例代码如下 定义学生类 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 int getAge() {return age;} } 学生集合抽象聚合类 public interface StudentAggregate {public Iterator createIterator();public int getNumberOfStudents();public Student getStudent(int index);public void addStudent(Student student);} 学生集合具体聚合角色 import java.util.ArrayList; import java.util.List;public class StudentAggregateImpl implements StudentAggregate{private ListStudent students;public StudentAggregateImpl() {students new ArrayList();}Overridepublic Iterator createIterator() {return new StudentIterator(this);} Overridepublic int getNumberOfStudents() {return students.size();}Overridepublic Student getStudent(int index) {return students.get(index);}Overridepublic void addStudent(Student student) {students.add(student);} } 抽象迭代器角色 public interface Iterator {public boolean hasNext();public Student next();} 学生具体迭代器角色 public class StudentIterator implements Iterator {private StudentAggregate studentAggregate;private int index;public StudentIterator(StudentAggregate studentAggregate) {this.studentAggregate studentAggregate;}Overridepublic boolean hasNext() {return (index studentAggregate.getNumberOfStudents());}Overridepublic Student next() {return studentAggregate.getStudent(index);}} 客户端 public class Client {public static void main(String[] args) {//使用示例StudentAggregate students new StudentAggregateImpl();// 添加学生Student john new Student(John, 18);Student mike new Student(Mike, 18);students.addStudent(john);students.addStudent(mike);Iterator iterator students.createIterator();while(iterator.hasNext()) {Student student iterator.next();System.out.println(student.getName());}} }运行结果如下 这个迭代器模式在学生管理示例中的执行逻辑过程  1、定义Student类用于表示学生信息。 2、定义StudentAggregate接口作为抽象学生集合类声明管理学生的通用方法。 3、实现StudentAggregateImpl类具体的学生集合使用List存储Student对象。 4、定义Iterator接口规定迭代器的通用方法。 5、实现StudentIterator类具体的学生迭代器持有对StudentAggregate的引用。 6、创建StudentAggregateImpl对象students表示具体的学生集合。 7、调用students的addStudent()方法向集合中添加学生。 8、调用students的createIterator()方法获取迭代器对象。 9、使用迭代器的hasNext()和next()方法遍历students集合访问其中的学生对象。 10、在整个过程中客户端代码都只与Iterator接口发生依赖而不需了解学生集合的具体实现/ 这样通过迭代器模式可以实现学生集合的遍历同时也达到了对访问学生集合的控制和集合内部表示的封装。  五、总结 优点 1、隔离了集合对象的遍历行为抽象出一个迭代器类来负责迭代元素。 2、提供了一种方法顺序访问一个聚合对象中的各个元素而又无需暴露该对象的内部表示。 3、迭代器简化了聚合类。客户端如果需要遍历聚合对象只需要初始化一个迭代器不需要知道聚合对象内部的具体实现。 4、在同一个聚合类中可以定义多个遍历方式通过不同的迭代器来实现。 5、符合单一职责原则。 6、实现了集合类的常用遍历算法容易扩展和维护。 缺点 1、增加了类的个数代码复杂度会增加需要维护更多的代码。 2、多态性能损耗。遍历时需要进行多次虚函数调用遍历效率降低。 3、遍历算法复用性差。每次遍历都需要创建新的迭代器实例无法重用已定义好的遍历算法。 应用场景 1、访问一个聚合对象的内容而无需暴露它的内部表示。 2、为遍历不同的集合结构提供一个统一的接口即支持多态迭代。 3、提供一种方法顺序访问一个聚合对象中的各个元素而又无需暴露该对象的内部表示。 4、分离集合对象的遍历行为到一个独立的迭代器类中。 符合的设计原则 1、单一职责原则Single Responsibility Principle 迭代器模式将集合对象的遍历行为抽象到迭代器类中集合类只负责存储迭代器类只负责遍历。二者职责区分明确符合单一职责原则。 2、开闭原则Open Closed Principle 可以在不修改集合类的情况下定义新的迭代器类满足扩展需求。增强了系统的可扩展性。 3、依赖倒转原则Dependency Inversion Principle 迭代器模式中集合类和客户端都依赖于抽象迭代器接口而不是依赖于具体迭代器类倒转了依赖关系。 4、组合复用原则Composite Reuse Principle 客户端可以统一使用迭代器接口遍历不同的集合类复用迭代器提供的遍历功能。 5、里氏替换原则Liskov Substitution Principle 迭代器模式中每个迭代器类都可以通过继承迭代器接口替换基类迭代器角色。
http://wiki.neutronadmin.com/news/325844/

相关文章:

  • 网站怎么做别名下载百度app最新版到桌面
  • 一站式营销推广平台搜索引擎优化什么意思
  • wifi管理网站想要网站导航推广
  • 做网站seo赚钱吗wordpress生成纯html
  • 毕节做网站优化软件项目管理是什么
  • 上海网站改版方案wordpress问答站模板
  • 杭州科技公司网站建设网站有权重可以对title做更改
  • txt做网站如何加图片成都网站优化方法
  • 省市网站建设考核标准要求动漫设计培训机构哪里好
  • 图书馆网站建设方案查网课答案的网站怎么做
  • 安阳建设网站网页设计案例教程课后实训答案
  • 黑龙省建设厅网站首页有官网建手机网站吗
  • 建站 赚钱网页制作设计教程
  • 网络设计与管理是干什么的珠海网站建设方案优化
  • 曹县商城网站建设哪里有网站开发服务
  • 专门做网站的公司正规赚佣金的平台
  • 重庆网站优化网络服务深圳市建设局网站
  • 做空包网站免费网站模板的制作方法
  • 网站建设市场行情分析成都的网站建设
  • 焦作网站建设价格有没有做海报的网站推荐
  • 网站建设一般用英文怎么说wordpress博客支持js
  • 北京做网站开发公司免费网址域名注册
  • 性价比高的广州网站建设wordpress pcdotfan
  • 国外域名查询网站网上购物平台有哪几个
  • 六安电商网站建设价格cms建站方案
  • 电子商务网站建设的核心多选做网站按什么收费多少钱
  • 长沙雨花区建设局网站网页制作策划书
  • 在c盘做网站可以吗西宁高端网站开发公司
  • 免费解析网站网站建设流程资讯
  • 网站建设及 维护东莞市电池网站建设