P2 实验二 设计模式实验一.pdf
P2实验二设计模式实验一--第1页
实验二设计模式实验一
一、实验目的
熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括
简单工厂模式、工厂方法模式、抽象工厂模式、单例模式和适配器模式,理解每一种设计模
式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使
用效果。
二、实验内容
使用PowerDesigner和任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、
抽象工厂模式、单例模式和适配器模式,包括根据实例绘制模式结构图、编写模式实例实现
代码,运行并测试模式实例代码。
(1)简单工厂模式
使用简单工厂模式设计一个可以创建不同几何形状(Shape)的绘图工具类,如可创建圆
形(Circle)、方形(Rectangle)和三角形(Triangle)对象,每个几何图形都要有绘制draw()和擦
除erase()两个方法,要求在绘制不支持的几何图形时,提示一个UnsupportedShapeException,
绘制类图并编程实现。
(2)简单工厂模式
使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数“M”,则返回一个Man
对象,如果传入参数“W”,则返回一个Woman对象,使用任意一种面向对象编程语言实现
该场景。现需要增加一个新的Robot类,如果传入参数“R”,则返回一个Robot对象,对
代码进行修改并注意女娲的变化。
(3)工厂方法模式
某系统日志记录器要求支持多种日志记录方式,如文件记录、数据库记录等,且用户可
以根据要求动态选择日志记录方式,现使用工厂方法模式设计该系统。用代码实现日志记录
器实例,如果在系统中增加一个中的日志记录方式——控制台日志记录(ConsoleLog),绘制
类图并修改代码,注意增加新日志记录方式过程中原有代码的变化。
1
P2实验二设计模式实验一--第1页
P2实验二设计模式实验一--第2页
Client
LogFactoryLog
+createLog():Log+writeLog():void
......
FileLogFactoryDatabaseLogFactoryFileLogDatabaseLog
+createLog():Log+createLog():Log+writeLog():void+writeLog():void
......
......
create