设计模式之实验二: 创建型设计模式实验

实验项目二: 创建型设计模式实验

(1)实验目的与原理
①结合实例,熟练绘制创建型设计模式结构图。
②结合实例,熟练使用Java面向对象编程语言实现创建型设计模式。
③通过编程实践,理解每一种创建型设计模式的概念和内涵、结构、优缺点以及应用场景。
(2)实验内容与步骤
①使用简单工厂模式设计一个可以创建不同几何形状( Shape)(例如圆形( Circle).、矩形 Rectangle)和三角形( ( Triangle)等的绘图工具类,每个几何图形均具有绘制方法daw()和擦除方法 erase(),要求在绘制不支持的几何图形时,抛出一个 UnsupportedShapeException异常。绘制类图并编程模拟实现。

②在某网络管理软件中,需要为不同的网络协议提供不同的连接类,例如针对POP3协议的连接类POP3Connection、针对IMAP协议的连接类 IMAPConnection、针对HTTP协议的连接类 HTTPConnection等。由于网络连接对象的创建过程较为复杂,需要将其创建过程封装到专门的类中,该软件还将支持更多类型的网络协议。现采用工厂方法模式进行设计,绘制类图并编程模拟实现。

③某系统为了改进数据库操作的性能,用户可以自定义数据库连接对象 Connection和语句对象 Statement,针对不同类型的数据库提供不同的连接对象和语句对象,例如提供 Oracle或 MySQL专用连接类和语句类,而且用户可以通过配置文件等方式根据实际需要动态更换系统数据库。使用抽象工厂模式设计该系统,绘制对应的类图并编程模拟实现。

④在某赛车游戏中,赛车包括方程式赛车、场地野赛车、运动汽车、卡车等类型,不同类型的赛车的车身、发动机、轮胎、变速箱等部件有所区别。玩家可以自行选择赛车类型,系统将根据玩家的选择创建出一辆完整的赛车。现采用建造者模式实现赛车的构建,绘制对应的类图并编程模拟实现

⑤某在线招聘网站中,用户可以创建一个简历模板。针对不同的工作岗位,可以复制该简历模板并进行适当修改后,生成一份新的简历。在复制简历时,用户可以选择是否复制简历中的照片:如果选择“是”,则照片将一同被复制,用户对新简历中的照片进行修改不会影响到简历模板中的照片,对模板进行修改也不会影响到新简历;如果选择“否”,则直接引用简历模板中的照片,修改简历模板中的照片将导致新简历中的照片一同修改,反之亦然。现采用原型模式设计该简历复制功能并提供浅克隆和深克隆两套实现方案,绘制对应的类图并编程模拟实现。

⑥某Web性能测试软件中包含一个虚拟用户生成器( Virtual User Generator)。为了避免生成的虚拟用户数量不一致,该测试软件在工作时只允许启动唯一一个虚拟用户生成器。采用单例模式设计该虚拟用户生成器,绘制类图并分别使用饿汉式单例、双重检测锁等二种方式编程模拟实现。

(3)实验过程
第一题:简单工厂模式实现创建不同几何图形
结构类图
设计模式之实验二: 创建型设计模式实验_第1张图片
实现代码:

模拟测试截图
设计模式之实验二: 创建型设计模式实验_第2张图片
第二题:工厂方法模式实现不同网络协议的连接
结构类图
设计模式之实验二: 创建型设计模式实验_第3张图片

实现代码:

模拟测试截图
设计模式之实验二: 创建型设计模式实验_第4张图片

第三题:抽象工厂模式实现数据库的连接
结构类图
设计模式之实验二: 创建型设计模式实验_第5张图片

实现代码:

模拟测试截图
设计模式之实验二: 创建型设计模式实验_第6张图片

第四题:建造者模式实现赛车的构建
结构类图
设计模式之实验二: 创建型设计模式实验_第7张图片

实现代码:

模拟测试截图
设计模式之实验二: 创建型设计模式实验_第8张图片

第五题:原型模式通过浅克隆和深克隆方法实现该简历复制功能
结构类图
设计模式之实验二: 创建型设计模式实验_第9张图片

实现代码:

模拟测试截图
设计模式之实验二: 创建型设计模式实验_第10张图片

第六题:单例模式设计虚拟用户生成器,使用饿汉式和双重检测
结构类图
设计模式之实验二: 创建型设计模式实验_第11张图片

实现代码:

模拟测试截图
设计模式之实验二: 创建型设计模式实验_第12张图片
详细的代码及操作

你可能感兴趣的:(设计模式,设计模式)