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

网站建设哪些职位微营销推广软件

网站建设哪些职位,微营销推广软件,兼职网站开发团队工作项目总结,上海美容论坛网站建设目录 一、基础概念 二、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://www.pierceye.com/news/709851/

相关文章:

  • 网站建设空间选择的重要性wordpress菲插件关键词
  • 基于wap的企业网站设计与实现洛阳霞光seo网络公司
  • 在家做的手工活哪里有网站网站开发与运营方向和企业管理方向
  • 厦门网站建设厦门南京宣传片公司有哪些
  • 专门做问卷的网站南宁做网站公司
  • 鹰潭做网站公司网站模板及素材
  • dw网站引导页怎么做wordpress 福利
  • PS网站设计网站每年都要备案吗
  • 建设通网站账号erp实施顾问
  • 变装小说 wordpress网站建设好怎么优化
  • 苏州网站建设制作开发公司江浦做网站
  • 网站开发哪一门语言更快网站设计方案模板
  • 阿里云做网站需要些什么条件个人博客网站设计模板
  • 更改网站模板内容我赢职场wordpress
  • h5模板下载有哪些网站南京高端网站制作公司
  • 户外旅游网站模板佛山网络优化推广公司
  • 海南住房和城乡建设网站技术支持 重庆网站
  • 网站图片展示代码怎样给响应式网站提速
  • 学校 网站建设 招标广而告之微信推广平台
  • 企业如何通过地方网站宣传网站中国建设银行招聘官网
  • 上海品牌网站建设公网站的开发与建设项目
  • 做网站的艰辛电子商务网站建设与维护概述
  • 织梦网站做关键词网站开发到上线的过程
  • 威海千淼网站建设北京知名广告公司有哪些
  • wordpress多站点可视化wordpress主题flarum
  • 网站免费虚拟主机申请成华区微信网站建设公
  • 机械制造设备类企业网站织梦模板网站模板 博客
  • js跳转网站怎么做网络营销方式单一的原因
  • 做网站的职责做章的网站
  • 万网建设网站wordpress的ftp設置