admin 管理员组文章数量: 887021
2023年12月24日发(作者:杨戬真的打不过孙悟空吗)
软件设计模式实验报告
篇一:软件设计模式实验报告
计算机科学与技术学院 实 验 报
告
课程名称: 专 业: 班 级:学 号:
姓 名:
实验一 单例模式的应用
1 实验目的
1) 掌握单例模式(Singleton)的特点
2) 分析具体问题,使用单例模式进行设计。
2 实验内容和要求
很多应用项目都有配置文件,这些配置文件里面定义一些应用需要的参数数据。
通常客户端使用这个类是通过new一个AppConfig的实例来得到一个操作配置文件内容的对象。如果在系统运行1 / 15
中,有很多地方都需要使用配置文件的内容,系统中会同时存在多份配置文件的内容,这会严重浪费内存资源。
事实上,对于AppConfig类,在运行期间,只需要一个对象实例就够了。那么应该怎么实现呢?用C#控制台应用程序实现该单例模式。绘制该模式的UML图。
UML图:
源代码:
class Program
{
static void Main
{
AppConfig appConfigOne = ;
AppConfig appConfigTwo = ;
if )
{
;
}
else
{
2 / 15
; }
;
}
}
}
运行结果:
实验小结:
通过这次实验,我了解了单例模式的具体概念和使用方法,并且感受到了他的优点带来的方便,但是同时也知道了该设计模式的缺点:由于单例模式中没有抽象层,因此单例类的扩展有很大困难。
实验二 工厂模式的应用
1 实验目的
1) 掌握工厂模式(
Factory
)的特点
2) 分析具体问题,使用工厂模式进行设计。
2 实验内容和要求
有一个OEM制造商代理做HP笔记3 / 15
本电脑,后来该制造商得到了更多的品牌笔记本电脑的订单Acer,Lenovo,Dell,该OEM商发现,如果一次同
时做很多个牌子的本本,有些不利于管理。利用工厂模式改善设计,用C#控制台应用程序实现该OEM制造商的工厂模式。绘制该模式的UML图。 UML图:
源代码: class Laptop
{
public
virtual void GetLaptop { }
}
class HpLaptop:Laptop
{
public override void GetLaptop
{
;
}
}
class AcerLaptop : Laptop
{
4 / 15
public override void GetLaptop
{
;
}
}
class LenovoLaptop : Laptop
{
public override void GetLaptop
{
;
}
}
class DellLaptop : Laptop
{
public override void GetLaptop
{
;}
}
interface IFactory
{
Laptop CreateFactory;
}
5 / 15
class HpFactory:IFactory
{
public Laptop CreateFactory
{
return new HpLaptop;
}
}
class AcerFactory : IFactory
{
public Laptop CreateFactory
{
return new AcerLaptop;
}
}
class LenovoFactory : IFactory
{
public Laptop CreateFactory
{
return new LenovoLaptop;
}
}
class DellFactory : IFactory
6 / 15
{
public Laptop CreateFactory
{
return new DellLaptop;
}
}
class Program
{
static void Main
篇二:1099111130设计模式实验报告
哈尔滨工业大学华德应用技术学院
实 验 报 告
课程名称: 软件设计模式
系 别: 计算机应用技术系
专 业: 软件工程
学 号: 1099111130
姓 名: 陈天任
学 期: 2012年春季学期
实验成绩:
计算机应用技术系 监制
- 1 -
7 / 15
- 2 -
- 3 -
- 4 -
篇三:设计模式实验一实验报告完整版
实验1 UML实验
实验学时: 2
每组人数: 1
实验类型: 3(1:基础性 2:综合性 3:设计性 4:研究性) 实验要求: 1(1:必修 2:选修3:其它)
实验类别: 3(1:基础 2:专业基础 3:专业 4:其它)
一、实验目的
1.学会安装和使用建模工具PowerDesigner,熟练使用PowerDesigner绘制常用的UML图形,熟悉常用的UML符号;
2.构建用例模型来描述软件需求,包括绘制用例图,撰写用例文档并制作用例检查矩阵;
3. 绘制状态图描述对象的状态及转8 / 15
换。
二、实验内容
1. 某酒店订房系统描述如下:
顾客可以选择在线预订,也可以直接去酒店通过前台服务员预订;
前台服务员可以利用系统直接在前台预订房间;
不管采用哪种预订方式,都需要在预订时支付相应订金;
前台预订可以通过现金或信用卡的形式进行订金支付,但是网上预订只能通过信用卡进行支付;
利用信用卡进行支付时需要和信用卡系统进行通信;
客房部经理可以随时查看客房预订情况和每日收款情况。
绘制该酒店订房系统的用例图。
2. 根据以下场景绘制用例图:
某企业为了方便员工用餐,为企业餐厅开发了一个订餐系统(COS:Cafeteria Ordering System),企业员工可通过企业内联网使用该系统。该系统功9 / 15
能描述如下:
企业的任何员工都可以查看菜单和今日特价;
系统的顾客是注册到系统的员工,可以在线订餐(以下操作均需先登录)、注册工资支付、修改订餐信息和删除订餐信息,在注册工资支付时需要通过工资系统进行身份验证;
餐厅员工是特殊的顾客,可以进行备餐(系统记录备餐信息)、生成付费请求和请求送餐,其中对于注册使用工资支付的顾客生成付费请求并发送给工资系统;
菜单管理员是餐厅员工的一种,可以管理菜单;
送餐员也是餐厅员工的一种,可以打印送餐说明、记录送餐信息(如送餐时间)以
及记录收费(对于没有注册工资支付的顾客,由送餐员收取现金后记录)。
3. Draw a use case diagram for the
following library system:
10 / 15
The library stores various items that
can be borrowed, including books and
journals. Books can be borrowed by both
staff and students, but only staff members
can borrow journals. When a user borrows
a book, their loan details are checked to
ensure that they have no overdue books on
loan, and have not already borrowed the
maximum permitted number of books.
Users can check their own loan
details at any time. Librarians are
permitted to check the loan details of any
user.
Library users can reserve books that
are currently out on loan. If three
reservations have
already been made for a given book,
and a further reservation is made, a new
copy will be ordered by the librarian.
4. 某棋牌馆管理系统的基本功能描述如下:
客户可以通过Internet预订座位,如11 / 15
果暂时没有合适的座位则允许客户进入“等候队列”,当有人退订或结账之后将及时通知客户。此外,该系统还需要为总台服务员提供座位安排以及结账的功能,要求能够支持现金和银行卡两种结账方式。
根据以上功能描述绘制相应的用例图。
5. 某银行准备开发一个网上信用卡管理系统 CCMS,该系统的基本功能为:
信用卡申请。非信用卡客户填写信用卡申请表,说明所要申请的信用卡类型及申请者的基本信息,提交 CCMS登录。如果信用卡申请被银行接受,客户会收到银行的确认函, 并告知用户信用卡的有效期及信贷限额;否则银行会发送一封拒绝函给该客户。客户收到确认函后,需再次登录 CCMS,用信用卡号和密码激活该信用卡。激活操作结束后,CCMS将激活通知发送给客户,告知客户其信用卡是否被成功地激活。
月报表生成。在每个月第一天的零12 / 15
点,CCMS为每个信用卡客户创建一份月报表,对该客户上月的信用卡交易情况及交易额进行统计。信用卡客户可以登录 CCMS查看月报表,也可以要求
CCMS提供打印出的月报表。
信用卡客户信息管理。信用卡客户的个人信息可以在 CCMS 中进行在线的管理。每个信用卡客户可以在线查询其个人信息。
信用卡交易记录。信用卡客户使用信息卡进行的每一笔交易都会记录在
CCMS中。
交易信息查询。信用卡客户可以登录 CCMS查询并核实其信用卡交易记录及交易额。
构造该系统的用例模型,要求绘制用例图,编写相应的用例文档,还需提供用例追踪矩阵。
6. 根据以下描述绘制状态图:
某销售信息管理系统中销售部员工可以提交订单,刚提交的订单为“初始”状态;系统管理员可以处理订单,如果13 / 15
订单无误,则修改订单为“备货”状态,否则将订单退还给提交订单的销售部员工修改,员工此时可以取消订单;仓库管理员备货完毕后可将订单状态改为“发货”状态;销售部员工在确认客户已经收到货物后,可将订单改为“关闭”状态。
三、实验要求
1. 正确安装PowerDesigner;
2. 熟练使用PowerDesigner绘制用例图和状态图;
3. 需按照用例建模的流程,提供用例图、用例文档和用例追踪矩阵;
4. 使用中的标准图符绘制图形,对于一些较为复杂的图形,适当增加文字注释来进行说明;
5. 所绘制图形必须正确、完整,需具有较好的可读性,注意图形中图符和文字大小及布局。
四、实验步骤
1. 安装;
2. 熟悉的常用功能;
14 / 15
3. 分析实例场景,识别执行者;
4. 识别用例及用例之间的关系;
5. 使用绘制用例图;
6. 撰写用例文档;
7. 创建用例追踪矩阵;
8. 使用绘制状态图。
五、实验报告要求
1. 绘制并提交酒店订房系统用例图;
2. 绘制并提交订餐系统用例图;
3. 绘制并提交图书馆系统用例图;
4. 绘制并提交棋牌馆管理系统用例图;
5. 构造网上信用卡管理系统CCMS的用例模型,提交用例图、用例文档和用例追踪矩阵;
6. 绘制并提交销售信息管理系统订单类的状态图;
7. 注意调整图中文字的字体及字号,注意图的整体布局和图的大小,避免使用交叉线。
15 / 15
版权声明:本文标题:软件设计模式实验报告 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1703392882h449318.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论