命令模式实验报告模板

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

相关文档
最新文档