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

(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. 本文详细介绍Python 设计模式系列之二: 创建型 Simple Factory 模式(转载)

    源地址:http://doc.chinaunix.net/python/200703/202210.shtml 本文详细介绍Python 设计模式系列之二: 创建型 Simple Factory 模式 ...

  2. c++设计模式详解_创建型设计模式

    设计模式(设计原则演化而来) 一.定义 设计模式是软件开发过程中,经过验证的,用于在特定环境下重复出现的,特定问题的解决方案.简单来说,就是特定环境下的固定编程套路. 1.1 解决了什么问题? 只需要 ...

  3. JAVA设计模式第二讲:创建型设计模式

    设计模式(design pattern)是对软件设计中普遍存在的各种问题,所提出的解决方案.本文以面试题作为切入点,介绍了设计模式的常见问题.我们需要掌握各种设计模式的原理.实现.设计意图和应用场景, ...

  4. 02.创建型设计模式实验

    写在前面 在网上抄个作业居然要不没有,要不要钱!老子有个屁的钱,气得我直接写完了,分享在这里供借鉴(抄可以,但你得会了再抄).随便转载,可以不署我名但需要声明非原创. 这是一系列的作业,所以也气了我一 ...

  5. Java设计模式(二)创建型设计模式

    文章目录 三 创建型设计模式 3.1 单例设计模式 3.1.1 饿汉式(线程安全) 3.1.2 懒汉式(线程不安全) 3.1.3 优缺点 3.1.4 补充 3.1.5 框架中的使用 3.1.4.1 S ...

  6. 二、java设计模式之工厂方法+抽象工厂模式(创建型设计模式)

    创建型设计模式-工厂模式和应用 工厂模式介绍: 它提供了一种创建对象的最佳方式,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象 例子: 需要购买一辆车,不用管 ...

  7. javaScript设计模式-创建型设计模式

    我们大家一听到设计模式就感觉设计模式是一个高端的东西,到底什么是设计模式呢?其实设计模式也就是我们的前辈在写代码的时候遇到的问题,提出的解决方案,为了方便人与人之间的交流,取了个名字,叫做设计模式. ...

  8. 技术图文:02 创建型设计模式(下)

    创建型设计模式(下) 知识结构: 图1 知识结构 单例模式 – 确保对象的唯一性 Sunny 软件公司承接了一个服务器负载均衡软件的开发工作,该软件运行在一台负载均衡服务器上,可以将并发访问和数据流量 ...

  9. 技术图文:02 创建型设计模式(上)

    创建型设计模式(上) 知识结构: 图1 知识结构 简单工厂模式 Sunny 软件公司欲基于 C# 语言开发一套图表库,该图表库可以为应用系统提供各种不同外观的图表,如: 柱状图(histogram) ...

  10. 从框架源码中学习创建型设计模式

    文章目录 从框架源码中解读创建型设计模式 工厂模式 案例一:RocketMQ源码-创建Producer生产者 案例二:RocketMQ源码-创建过滤器工厂 抽象工厂 案例一:Dubbo源码-创建缓存的 ...

最新文章

  1. LabVIEW图像分割算法(基础篇—6)
  2. 启动 nginx 时报错:error while loading shared libraries:
  3. linux下使用gdb调试崩溃和死锁实例
  4. 遗传算法求最短路径(旅行商问题)python实现
  5. java 序列化 clone_利用java序列化进行对象深Clone
  6. IE8下submit表单没反应
  7. 集群(一)——LVS负载均衡集群
  8. webservice xml java_java访问WebService接口返回xml
  9. Servlet3.0注解配置访问路径和urlParttern配置
  10. netmiko可以连接的设备有哪些_气体报警器可以联动哪些设备
  11. Bing API 将新增 Bing 空间数据服务
  12. mysql 驱动jar包下载_mysql驱动jar包
  13. ArcGIS Desktop 10.1 的系统自带的 prj 文件的去哪了?
  14. 单层感知机(Single Layer Perceptron)详解
  15. 将.ipynb文件转换为.py文件
  16. Day 11 Contractions and Present Perfect
  17. 阿里自研UED计件平台技术解析
  18. 云主机因远程连接数量限制无法连接时的解决办法
  19. 光伏电子工程的设计与实施2022——单片机力控部分实现思路
  20. WIN10应用商店(MicrosoftStore)闪退解决方法!!!

热门文章

  1. 【网络攻防技术】实验七—— XSS攻击实验(Elgg)
  2. 软考高级 真题 2017年下半年 信息系统项目管理师 论文
  3. 学习总结——小程序中输入框和键盘的那些事
  4. pdfobject.js和pdf.js的详解
  5. redis中内存碎片处理
  6. FastDFS原理及入门
  7. linux日志分析步骤,Linux系统日志分析的基本教程
  8. PMP课程笔记:第10章 项目沟通管理
  9. java 数组有序_Java有序数组
  10. iTerm2配置(rz/sz命令)