宋行健软件工程实验报告:设计模式-创建型模式2

需积分: 0 0 下载量 64 浏览量 更新于2024-08-04 收藏 2.92MB DOCX 举报
"宋行健同学的实验31是关于设计模式的课程实验,重点探讨了创建型模式,包括原型模式和单例模式的应用。实验在2021年3月30日进行,由王晓蒙老师指导,属于2018级软件工程专业的课程。实验内容涉及游戏开发,具体为游戏的时间控制、键盘消息处理和对象管理。" 在这个实验中,宋行健同学首先详细研究了提供的代码,理解其结构并绘制了类图。代码的核心由三个主要的控制类组成:GameLoopTimer负责游戏时间管理,GameController处理键盘输入,而GameManager则负责游戏对象的初始化和管理。所有游戏实体,如Coin、Player、Map和Number,都继承自一个抽象的Entity类,因为它们共享Image图片和Point2D位置这两个关键属性。Entity类还包含一个isOverlap()方法,用于检测对象间的碰撞。 实验的焦点在于原型模式和单例模式的实现: 1. 原型模式:Coin类利用原型模式进行实例化。在GameManager中,Coin的原型先被创建,随后在refresh()方法中进行深复制,生成独立的Coin对象。深复制确保了新生成的Coin对象可以独立设置位置,不会影响原始对象。Coin类中的clone()方法被重写以支持深复制,避免了浅复制可能导致的共享状态问题。 2. 单例模式:实验中,GameController和GameManager的实例采用了饿汉模式的单例设计。这意味着在类加载时,单例对象就已经创建,提供了一种线程安全且高效的单例实现方式。这种模式确保在整个应用中,这两个类只有一个全局访问点,保证了游戏管理的统一性。 实验31不仅强化了宋行健同学对设计模式的理解,还提供了实际操作的机会,将理论知识应用于解决游戏开发中的具体问题,如对象创建和管理,以及如何有效地利用设计模式提高代码的可复用性和可维护性。这样的实践对于软件工程师来说至关重要,能够在未来的工作中更好地设计和架构复杂系统。