设计模式十七
- 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实现该过程。
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();
= no;
= name;
= age;
= zy;
}
编号: " + + ". 年龄: " +
+ ". 专业: " + ;
}
}
package设计模式实验十七周_1;
import
import
import
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
(s1);
(s2);
(s3);
(s4);
(list);
"按照年龄进行排序输出: ");
for(Student stu : list){
}
}
}
运行结果:
(2)使用中介者模式来说明联合国的作用,要求绘制相应的类图并分析每个类的作用(注:可以将联合国定义为抽象中介者类,联合国下属机构如WTO、WFC、WHO等作为具体中介者类,国家可以作为抽象同事类,而将中国、美国、日本、英国等国家作为具体同事类)。
package设计模式实验十七周_2;
import
public abstract class UN {
protected String name;
protected Hashtable
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
public UN() {
= new Hashtable
}
public void AddCountry(Country co) {
if (country == null)
return;
(), co);
}
public void DelCountry(String co) {
if (country == null)
return;
(co);
}
public void DelCountry(Country co) {
if (country == null)
return;
());
}
protected void SendMessage(String from, String to, String msg) { Country co = (to);
if (co != null)
(from, msg);
else
"对不起!“" + from + "”不存在,可能还未加入UN!");
}
public void ReceiveMessage(String from, String to, String msg) { SendMessage(from, to, msg);
}
}
package设计模式实验十七周_2;
public abstract class Country {
protected String name;
protected UN wto, who, wfc;
public UN getWto() {
return wto;
}
public void setWto(UN wto) {
= wto;
}
public UN getWho() {
return who;
}
public void setWho(UN who) {
= who;
}
public UN getWfc() {