哈尔滨工大深造:2022春设计模式实验-观察者与模板模式详解

需积分: 0 0 下载量 175 浏览量 更新于2024-08-05 收藏 985KB PDF 举报
实验六实验指导书(2022春)1主要聚焦于面向对象的软件构造导论中两个重要的设计模式:观察者模式和模板模式。本实验共分为4个学时,旨在帮助学生深入理解和应用这些设计模式。 1. 实验目的: - **观察者模式**:通过实际案例(如飞机大战中的炸弹道具系统),学生将学习到如何定义订阅机制,使得当一个对象(炸弹道具)状态改变时,与其关联的多个观察者(英雄机)能够接收到通知。目标是让学生掌握模式的动机、意图和结构,以及如何在代码中实现。 - **模板模式**:实验同样结合实例(游戏难度的简单、普通和困难级别),让学生绘制模板模式的UML结构图,并重构代码以体现模式的特点,即提供一个抽象的算法骨架,让子类可以替换特定的行为。 2. 实验环境: - 使用Windows 10操作系统 - 集成开发环境:IntelliJ IDEA 2021.3.2 - 编程语言:Java 11 3. 实验内容: - 绘制观察者模式的UML类图,具体场景是飞机大战中的炸弹道具系统。 - 通过类图重构代码,模拟炸弹道具的观察者机制,例如英雄机如何响应道具的触发。 - 绘制模板模式的UML类图,涉及游戏难度的不同层次。 - 代码实现中,用RMBRate对象作为发布者,展示模板模式如何提供通用算法框架。 4. 实验步骤: - **观察者模式**:首先绘制飞机大战中观察者模式的UML结构图,明确发布者(炸弹道具)、主题(英雄机)和多个观察者角色。然后,编写代码实现观察者接口,以及发布者如何通知观察者。 - **模板模式**:设计一个基础的游戏难度模板,让子类(简单、普通和困难难度)继承并覆盖特定行为。 5. 实验要求: - 理解观察者模式和模板模式的核心概念,包括模式动机和意图。 - 能够独立绘制符合模式逻辑的UML类图。 - 实现模式的代码能力,即在实际项目情境中运用设计模式解决问题。 通过这次实验,学生不仅可以理论联系实际地学习设计模式,还能提升他们的面向对象编程技能和抽象思考能力。