命令模式实验报告模板
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XXXXXX学校实验报告
课程名称:Java设计模式班级:11软件工程学号:
姓名:
实验二命令模式的应用
1.实验目的
1、掌握命令模式的结构和使用环境
2、应用命令模式解决实际问题
2.实验内容
实现一个通讯录程序,命令模式下的JA V A程序,该程序具备添加,删除,和查看通讯录信息的功能
界面:
1.添加联系人信息
2删除联系人信息
3查看联系人信息
--------------------------------------------------------------------------------------------
当点击按钮添加时,以进入添加联系人信息,添加的信息包括姓名和电话号码
当点击按钮删除时,可进入删除联系人信息,通过输入联系人姓名完成删除。
当点击按钮查看时,可进行查看,通过输入联系人姓名,查看其他电话号码。
3.实验步骤
(1)设计思路:(需要几个类、接口,它们各自的角色并画出类图)
实验的设计思路才用命令模式,其中请求者为AddressBook.java,接受者为Woker.java,命令接口为Command.java,具体命令有三个分别为AdditionCommand.Java,DeleteCommand.java,QueryCommand.java,以及main类AddressBookMain.java.
UML建模图如下:
(2)程序代码(需加注释)
实验二命令模式的应用
1.实验目的
1、掌握命令模式的结构和使用环境
2、应用命令模式解决实际问题
2.实验内容
实现一个通讯录程序,命令模式下的JA V A程序,该程序具备添加,删除,和查看通讯录信息的功能
界面:
1.添加联系人信息
2删除联系人信息
3查看联系人信息
--------------------------------------------------------------------------------------------
当点击按钮添加时,以进入添加联系人信息,添加的信息包括姓名和电话号码
当点击按钮删除时,可进入删除联系人信息,通过输入联系人姓名完成删除。
当点击按钮查看时,可进行查看,通过输入联系人姓名,查看其他电话号码。
3.实验步骤
(1)设计思路:(需要几个类、接口,它们各自的角色并画出类图)
主类
package honework1;
import java.awt.HeadlessException;
import java.awt.*;
import javax.swing.*;
public class People extends JFrame {
Invoke del,add,che;
UserList user;
People() {
s etLayout(new FlowLayout());//设置页面的布局
setTitle("通讯录");
del = new Invoke();//添加三个按钮
add = new Invoke();
che = new Invoke();
user = new UserList();
del.setCommand(new Del(user));
add.setCommand(new Add(user));
che.setCommand(new Check(user));
add(del.getButton());//把按钮放到页面中
add(add.getButton());
add(che.getButton());
add(user);
setSize(300,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//实现窗口的关闭
setVisible(true);
}
public static void main(String args[]){
People people = new People();
}
}
接受者
package honework1;
import java.awt.TextField;
import java.util.*;
import javax.swing.*;
public class UserList extends JPanel{
HashMap
JTextField text1,text2;
public UserList(){
text1=new JTextField(10);
add(text1);
text2=new JTextField(10);
add(text2);
}
//实现在hashmap中添加一条记录的功能
public void add(){
String str=text1.getText();
String str1=text2.getText();
Random r1=new Random();
hm.put(str,str1);
text1.setText(null);
text2.setText(null);
}
//实现在hashmap中删除一条记录的功能
public void del() {
hm.remove(text1.getText());
text1.setText(null);
text2.setText(null);
}
//实现在hashmap中查询记录的功能
public void check() {
String str=text1.getText();
String str1=hm.get(str);
text2.setText(str1);
}
}
具体命令:
package honework1;
public class Del implements Command{ UserList list;
Del(UserList list){
t his.list = list;
}
public void execute() {
list.del();
}
public String getName() {
return"删除联系人";
}
}
package honework1;
public class Add implements Command{ UserList list;
Add(UserList list){