设计模式十七

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.实验目的

1.熟悉UML统一建模语言;

2.回顾熟悉迭代器模式、中介者模式、备忘录模式;

3.熟悉XML文件的操作;

4.熟悉java的反射机制。

二.实验内容

(1)某教务管理系统中一个班级(Class)包含多个学生(Student),使用Java内置迭代器实现对学生信息的遍历,要求按学生年龄由大到小的次序输出学生信息。用Java实现该过程。

(2)使用中介者模式来说明联合国的作用,要求绘制相应的类图并分析每个类的作用(注:可以将联合国定义为抽象中介者类,联合国下属机构如WTO、WFC、WHO 等作为具体中介者类,国家可以作为抽象同事类,而将中国、美国、日本、英国等国家作为具体同事类)。

(3)改进“用户信息操作撤销”实例,使得系统可以实现多次撤销操作(可以使用集合对象如HashMap、ArrayList等来实现)。

三.实验环境

PC微机;

Windows 操作系统;

Visual Studio 程序集成环境。

四.实验内容

(1)某教务管理系统中一个班级(Class)包含多个学生(Student),使用Java内置迭代器实现对学生信息的遍历,要求按学生年龄由大到小的次序输出学生信息。用Java实现该过程。

Student.java

package设计模式实验十七周_1;

public class Student implements Comparable {

private String no;

private String name;

private int age;

private String zy;

public Student(String no, String name, int age, String zy) { super();

this.no = no;

= name;

this.age = age;

this.zy = zy;

}

// 三个返回结果都要写出来

public int compareTo(Student o) {

if(this.age > o.age){

return -1;

}else if(this.age < o.age){

return 1;

}else {

return 0;

}

}

@Override

public String toString(){

return"姓名: " + + ". 编号: " + this.no + ". 年龄: " + this.age

+ ". 专业: " + this.zy;

}

}

Client.java

package设计模式实验十七周_1;

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

public class Client {

public static void main(String[] args) {

Student s1 = new Student("291", "张一", 20, "音乐专业");

Student s2 = new Student("423", "李红", 21, "计算机专业");

Student s3 = new Student("211", "王文", 22, "机械专业");

Student s4 = new Student("445", "高龙", 19, "国贸专业");

List list = new ArrayList();

list.add(s1);

list.add(s2);

list.add(s3);

list.add(s4);

Collections.sort(list);

System.out.println("按照年龄进行排序输出: ");

for(Student stu : list){

System.out.println(stu.toString());

}

}

}

UML.java

运行结果:

(2)使用中介者模式来说明联合国的作用,要求绘制相应的类图并分析每个类的作用(注:可以将联合国定义为抽象中介者类,联合国下属机构如WTO、WFC、WHO 等作为具体中介者类,国家可以作为抽象同事类,而将中国、美国、日本、英国等国家作为具体同事类)。

UN.java

package设计模式实验十七周_2;

import java.util.Hashtable;

public abstract class UN {

protected String name;

protected Hashtable country;

public String getName() {

return name;

}

public void setName(String name) {

= name;

}

public UN() {

this.country = new Hashtable();

}

public void AddCountry(Country co) {

if (country == null)

return;

country.put(co.getName(), co);

相关文档
最新文档