设计模式十七
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.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
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);