设计模式实验报告

  • 格式:doc
  • 大小:2.17 MB
  • 文档页数:116

下载文档原格式

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

预备实验UML建模

实验目的:加深对UML建模的理解

实验环境:MyEclipse(Java)或Rational Rose等

实验内容:

1、需求描述

A.某学校准备开发一套选课管理系统,其主要用户是教师和学生。假设教

师可以查看课程、增加课程和修改课程;学生可以选修一门或多门课程

(为简化起见,学生选修某课程后不允许修改和删除),还能够查看所

选修课程的成绩。其中:课程可由课程编号、课程名称进行描述;教师

可用工号和姓名进行描述;学生可用学号、姓名进行描述。

B. 某信用卡系统账户具有使用状态和冻结状态,其中使用状态又包括正常状态和透支状态两种子状态。如果账户余额小于零则进入透支状态,透支状态时既可以存款又可以取款,但是透支金额不能超过5000元;如果余额大于零则进入正常状态,正常状态时既可以存款又可以取款;如果连续透支100天,则进入冻结状态,冻结状态下既不能存款又不能取款,必须要求银行工作人员解冻。用户可以在使用状态或冻结状态下请求注销账户。根据上述要求,绘制账户类的状态图。

2、用例图

根据上面的需求描述A,运用UML画出用例图。画图中的用例名和参与者均用中文表示;

3、类图

根据上面的需求描述A,运用UML画出初始设计类图(仅含业务类),图中应给出属性和方法的中文名称,类与类之间若存在关联,可不确定关联的方向,但需要标出这些关联的多重性。

4、状态图

根据上面的需求描述B,运用UML画出状态图

实验2 单一职责原则训练

实验目的:加深对单一职责原则的理解

实验环境:C#.Net/VC++.Net或MyEclipse(Java)等

实验内容:

1、实例说明

某基于Java的C/S系统的“登录功能”通过如下登录类(Login)实现:

现使用单一职责原则对其进行重构,并编程实现(可仿真实现数据数据库DAO 形式,当然如果能实现真实的数据库连接并进行数据库的操纵更好)。

package Experiment_One_Code;

import java.sql.*;

/**

*

* @author Author

*

*/

public class DBUtil {

public static Connection getConnction() {

Connection dbConnection = null;

try {

Class.forName(DRIVER_CLASS);

dbConnection = DriverManager.getConnection(DATABASE_URL,

DATABASE_USRE, DATABASE_PASSWORD);

} catch (Exception e) {

e.printStackTrace();

}

return dbConnection;

}

}

package Experiment_One_Code;

/**

*

* @author Author

*

*/

public class UserDAO {

private DBUtil db = new DBUtil();

private String userName;

private String userPassword;

public boolean findUser(String userName, String userPassword) { return false;

}

}

package Experiment_One_Code;

/**

*

* @author Author

*

*/

public class LoginForm {

public LoginForm(UserDAO dao) {

super();

this.dao = dao;

}

public LoginForm() {

super();

}

UserDAO dao = new UserDAO();

public void init() {

}

public void display() {

}

public void validate() {

}

}

package Experiment_One_Code;

/**

*

* @author Author

*

*/

public class MainClass {

public static void main(String[] args) { // TODO Auto-generated method stub

LoginForm loginForm = new LoginForm();

loginForm.init();

loginForm.display();

loginForm.validate();

}

}

2、实例说明

某图形处理系统通过如下类实现:

package compute.area_circle.HKT;

/**

*

* @author Author1

* @date 2019-04-02 上午11:26:41

* 正方形类

*/

public class squareClass {

public void Draw() {

System.out.println("画一个正方形!");

}

public void Area() {

System.out.println("计算正方形的面积!");

}

}

package compute.area_circle.HKT;

/**

*

* @author Author1

* @date 2019-04-02 上午11:49:50

*

*/

public class figure_Draw_Program {

public static void main(String[] args) { // TODO Auto-generated method stub

squareClass square1 = new squareClass();

square1.Draw();

}