设计模式实验报告Word格式.docx
- 文档编号:19115434
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:130
- 大小:1.49MB
设计模式实验报告Word格式.docx
《设计模式实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《设计模式实验报告Word格式.docx(130页珍藏版)》请在冰豆网上搜索。
2、用例图
根据上面的需求描述A,运用UML画出用例图。
画图中的用例名和参与者均用中文表示;
3、类图
根据上面的需求描述A,运用UML画出初始设计类图(仅含业务类),图中应给出属性和方法的中文名称,类与类之间若存在关联,可不确定关联的方向,但需要标出这些关联的多重性。
4、状态图
根据上面的需求描述B,运用UML画出状态图
实验2单一职责原则训练
加深对单一职责原则的理解
C#.Net/VC++.Net或MyEclipse(Java)等
1、实例说明
某基于Java的C/S系统的“登录功能”通过如下登录类(Login)实现:
现使用单一职责原则对其进行重构,并编程实现(可仿真实现数据数据库DAO形式,当然如果能实现真实的数据库连接并进行数据库的操纵更好)。
packageExperiment_One_Code;
importjava.sql.*;
/**
*
*@authorAuthor
*
*/
publicclassDBUtil{
publicstaticConnectiongetConnction(){
ConnectiondbConnection=null;
try{
Class.forName(DRIVER_CLASS);
dbConnection=DriverManager.getConnection(DATABASE_URL,
DATABASE_USRE,DATABASE_PASSWORD);
}catch(Exceptione){
e.printStackTrace();
}
returndbConnection;
}
}
publicclassUserDAO{
privateDBUtildb=newDBUtil();
privateStringuserName;
privateStringuserPassword;
publicbooleanfindUser(StringuserName,StringuserPassword){
returnfalse;
publicclassLoginForm{
publicLoginForm(UserDAOdao){
super();
this.dao=dao;
publicLoginForm(){
UserDAOdao=newUserDAO();
publicvoidinit(){
publicvoiddisplay(){
publicvoidvalidate(){
publicclassMainClass{
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
LoginFormloginForm=newLoginForm();
loginForm.init();
loginForm.display();
loginForm.validate();
2、实例说明
某图形处理系统通过如下类实现:
packagecompute.area_circle.HKT;
*@authorAuthor1
*@date2019-04-02上午11:
26:
41
*正方形类
*/
publicclasssquareClass{
publicvoidDraw(){
System.out.println("
画一个正方形!
"
);
publicvoidArea(){
计算正方形的面积!
49:
50
publicclassfigure_Draw_Program{
squareClasssquare1=newsquareClass();
square1.Draw();
38:
47
publicclassfigure_Compute_Program{
/**
*@paramargs
squareClasssquare=newsquareClass();
square.Area();
现使用单一职责原则对其进行重构。
察看:
要求编程实现以上二种体系结构,并比较二种实现的差异。
packagecompute.area.draw.improve;
publicinterfaceIAbstractSquare{
publicvoidArea();
publicvoidDraw();
publicclassfigure_Compute_ProgramimplementsIAbstractSquare{
@Override
publicclassfigure_Draw_ProgramimplementsIAbstractSquare{
实验2开闭原则与里氏代换原则综合训练
加深对开闭原则与里氏代换原则的理解(如果你能用配置文件,建议用配置文件解决。
)
1、问题
(一)“长方形和正方形“。
试写一个求面积与周长的解决方案,要求画UML图并编程实现,并体现出开闭原则与里氏代换原则。
IbstractCompute.java
packagedesinMode.experiment2.code;
*@date2019-04-09上午11:
32:
57
publicabstractclassIbstractCompute{
//计算周长函数
publicabstractvoidcomputePerimeter();
//计算面积函数
publicabstractvoidcomputeArea();
computeRectangle.java
46:
38
publicclasscomputeRectangleextendsIbstractCompute{
publicvoidcomputePerimeter(){
继承抽象类,实现抽象方法计算长方形的周长(实现开闭原则与里氏代换原则)"
publicvoidcomputeArea(){
继承抽象类,实现抽象方法计算长方形的面积(实现开闭原则与里氏代换原则)"
computeSquare.java
45
publicclasscomputeSquareextendsIbstractCompute{
publicvoidcomputePerimeter(){
System.out.println("
继承抽象类,实现抽象方法计算正方形的周长(实现开闭原则与里氏代换原则)"
//计算面积函数
publicvoidcomputeArea(){
继承抽象类,实现抽象方法计算正方形的面积(实现开闭原则与里氏代换原则)"
mainClass.java
publicclassmainClass{
IbstractComputeibstractCompute=null;
//开闭原则与里氏代换原则正方形
ibstractCompute=newcomputeSquare();
ibstractCputePerimeter();
ibstractCputeArea();
////开闭原则与里氏代换原则长方形
ibstractCompute=newcomputeRectangle();
ibstractCputePerimeter();
2、问题
(二)“士兵用枪杀敌”UML图理解与编程实现
(1)CS游戏中的枪械类图
Client.java
packagedesinMode.experiment2.question_2;
*@date2019-04-13上午11:
02:
30
publicclassClient{
AbstractGunabstractGun1=newHandgun();
AbstractGunabstractGun2=newRifle();
AbstractGunabstractGun3=newMachinegun();
Soldiersoldier=newSoldier();
soldier.killEnemy(abstractGun1);
soldier.killEnemy(newRifle());
soldier.killEnemy(newMachinegun());
Soldier.java
03:
06
publicclassSoldier{
publicvoidkillEnemy(AbstractGunabstractGun){
System.out.print("
士兵用"
abstractGun.shoot();
杀死敌人"
AbstractGun.java
46
publicabstractclassAbstractGun{
publicabstractvoidshoot();
Handgun.java
*@date2019-04-13上午10:
20
publicclassHandgunextendsAbstractGun{
publicvoidshoot(){
手枪"
Machinegun.java
54
publicclassMachinegunextendsAbstractGun{
机械枪"
Rifle.java
00
publicclassRifleextendsAbstractGun{
步枪"
(2)如果我们有一个玩具手枪,该如何定义呢?
先在上图增加一个类ToyGun,然后继承于AbstractGun类
publicclassClient{
soldier.killEnemy(newToygun());
Toygun.java
13:
59
publicclassToygunextendsAbstractGun{
玩具枪"
(3)具枪与真实枪分离的类图
publicclass
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 模式 实验 报告