《JAVA 设计模式》实验教学大纲
专业名称
课程类别 课程学分 总学时 理论学时 实验学时
计算机科学与技术 专业选修课
软件工程
专业选修课
2.5
3.5
48
64
32
48
16
16
一、实验课程的性质、目的与任务
《JAVA 设计模式》是计算机相关专业中的一门理论性和实践性都很强的专业课。该实
验课程的目的是配合理论课程教学,使学生掌握实验的基本方法和基本技能,加深对 JAVA
设计模式的基本概念的理解,使其了解常见的 23 种设计模式的基本原理和使用环境,学会
常见设计模式的使用方法,从而促使学生理论联系实际,能够灵活运用自己所学的理论知识
进行软件开发,增强学生的实践动手技能,并能够提高学生独立分析问题和解决问题的能力,
为大学本科高年级有关软件设计类课程打好坚实的基础,为今后从事软件开发提供必要的指
导思想,使代码编制真正工程化,从而提高代码的可重用性、可读性和可靠性。
实验的教学任务是通过实验巩固并扩展 JAVA 设计模式课程的基本概念、基本理论,如:
面向对象设计原则、创建型模式、结构型模式和行为型模式等,培养学生创新意识。通过本
实验课程,应完成以下任务:
1、使学生理解 7 种面向对象的设计原则与面向对象的编程技术;
2、使学生掌握 GoF 的 23 种设计模式的使用方法;
3、使学生掌握代码编制的工程化技术,为今后的项目开发打下基础。
二、实验教学基本要求
1、教师事先熟悉实验操作过程,将相关理论知识融于实验教学中,在实验过程中做好
实验指导。
2、实验课前必须预习实验,认真阅读实验教材和有关资料,熟悉实验内容、实验原理、
实验目的、实验步骤;实验时能独立完成代码的编写,能独立完成实验操作。
3、上机输入和调试自己所编写的程序时,能在软件开发平台上测试通过。
4、实验结束后,应认真做好实验报告,认真分析实验现象和实验数据,得出实验结论。
实验报告包括以下内容:实验项目名称、实验原理、实验过程、测试数据、实验结果分析等。
5、要求学生在下一个实验时上交前一次的实验报告。
三、实验项目
序号
实验项目
学时
实验性质
验证 综合 设计
每组
人数
备注
必做 选做
1
UML 语言的使用与类
图的设计
2
2 创建型模式应用(上) 4
3 创建型模式应用(下) 4
√
√
4 结构型模式应用(上) 4
√
5 结构型模式应用(下) 4
√
√
1
1
1
1
1
√
√
√
√
√
1
序号
实验项目
学时
实验性质
验证 综合 设计
每组
人数
备注
必做 选做
6 行为型模式应用(上) 4
√
7 行为型模式应用(中) 4
8 行为型模式应用(下) 4
合计
30
4
√
1
√
3
1
1
1
√
√
4
√
4
注:各专业可以根据课程标准的学分和学时情况选取实验项目。
四、实验教学内容
1、实验目的
实验一 UML 语言的使用与类图的设计
(1)理解类的基本概念,掌握如何从需求分析中抽象出类的方法。
(2)了解类间关系的基本种类,掌握如何分析类间关系的方法。
(3)学会用 UML 语言表示类以及类之间的关系。
2、主要实验仪器及材料
计算机、Java SDK、Eclipse、Rational Rose 或 UMLet
3、实验内容
(1)通过对某应用实例(如:图书馆管理系统)进行需求分析,寻找和抽象出其中的
类。
(2)用 UML 语言对该实例中的类的关系进行建模,正确画出类图与类的相互关系。
(3)写出类的主要 Java 源代码。
实验二 创建型模式应用(上)
1、实验目的
(1)理解“创建型模式”的基本概念、基本原理和应用场景。
(2)掌握单例模式(Singleton)、原型模式(Prototype)的使用方法。
2、主要实验仪器及材料
计算机、Java SDK、Eclipse、Rational Rose 或 UMLet
3、实验内容
(1)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“单例模式”的程序实例。
(2)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“原型模式”的程序实例。
(3)要求满足以下几点:1)体现“创建型模式”的工作原理;2)尽量符合面向对象
的七条设计原则;3)每个实例要有类图、源代码和运行结果。
1、实验目的
实验三 创建型模式应用(下)
(1)进一步明白“创建型模式”的基本概念、基本原理和应用场景。
(2)掌握工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建
2
造者模式(Builder)的使用方法。
2、主要实验仪器及材料
计算机、Java SDK、Eclipse、Rational Rose 或 UMLet
3、实验内容
(1)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“工厂方法模式”的程序实例。
(2)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“抽象工厂模式”的程序实例。
(3)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“建造者模式”的程序实例。
(4)综合应用以上 5 种“创建型模式”中的若干种开发一个应用实例。
(5)要求满足以下几点:1)体现“创建型模式”的工作原理;2)尽量符合面向对象
的七条设计原则;3)每个实例要有类图、源代码和运行结果。
1、实验目的
实验四 结构型模式应用(上)
(1)理解“结构型模式”的基本概念、基本原理和应用场景。
(2)掌握代理模式(Proxy)、适配器模式(Adapter)、桥接模式(Bridge)的使用方法。
2、主要实验仪器及材料
计算机、Java SDK、Eclipse、Rational Rose 或 UMLet
3、实验内容
(1)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“代理模式”的程序实例。
(2)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“适配器模式”的程序实例。
(3)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“桥接模式”的程序实例。
(5)要求满足以下几点:1)体现“结构型模式”的工作原理;2)尽量符合面向对象
的七条设计原则;3)每个实例要有类图、源代码和运行结果。
1、实验目的
实验五 结构型模式应用(下)
(1)进一步明白“结构型模式”的基本概念、基本原理和应用场景。
(2)掌握装饰模式(Decorator)、外观模式(Facade) 、享元模式(Flyweight) 、组合
模式(Composite)的使用方法。
2、主要实验仪器及材料
计算机、Java SDK、Eclipse、Rational Rose 或 UMLet
3、实验内容
(1)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“装饰模式”的程序实例。
(2)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“外观模式”的程序实例。
(3)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“享元模式”的程序实例。
3
(4)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“组合模式”的程序实例。
(5)综合应用以上 7 种“结构型模式”中的若干种开发一个应用实例。
(6)要求满足以下几点:1)体现“结构型模式”的工作原理;2)尽量符合面向对象
的七条设计原则;3)每个实例要有类图、源代码和运行结果。
1、实验目的
实验六 行为型模式应用(上)
(1)理解“行为型模式”的基本概念、基本原理和应用场景。
(2)掌握模板方法模式(Template Method)、策略模式(Strategy)、命令模式(Command)
的使用方法。
2、主要实验仪器及材料
计算机、Java SDK、Eclipse、Rational Rose 或 UMLet
3、实验内容
(1)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“模板方法模式”的程序实例。
(2)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“策略模式”的程序实例。
(3)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“命令模式”的程序实例。
(4)要求满足以下几点:1)体现“行为型模式”的工作原理;2)尽量符合面向对象
的七条设计原则;3)每个实例要有类图、源代码和运行结果。
1、实验目的
实验七 行为型模式应用(中)
(1)进一步明白“行为型模式”的基本概念、基本原理和应用场景。
(2)掌握职责链模式(Chain of Responsibility)、状态模式(State)、观察者模式
(Observer)、中介者模式(Mediator)的使用方法。
2、主要实验仪器及材料
计算机、Java SDK、Eclipse、Rational Rose 或 UMLet
3、实验内容
(1)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“职责链模式”的程序实例。
(2)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“状态模式”的程序实例。
(3)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“观察者模式”的程序实例。
(4)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“中介者模式”的程序实例。
(5)要求满足以下几点:1)体现“行为型模式”的工作原理;2)尽量符合面向对象
的七条设计原则;3)每个实例要有类图、源代码和运行结果。
1、实验目的
实验八 行为型模式应用(下)
4
(1)进一步明白“行为型模式”的基本概念、基本原理和应用场景。
(2)掌握迭代器模式(Iterator)、访问者模式(Visitor)、备忘录模式(Memento)、解
释器模式(Interpreter)的使用方法。
2、主要实验仪器及材料
计算机、Java SDK、Eclipse、Rational Rose 或 UMLet
3、实验内容
(1)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“迭代器模式”的程序实例。
(2)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“访问者模式”的程序实例。
(3)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“备忘录模式”的程序实例。
(4)参考教材中的应用实例以及教材第 9 章中的实验指导,从生活中或软件开发案例
中查找实例,开发一个应用“解释器模式”的程序实例。
(5)综合应用以上 11 种“行为型模式”中的若干种开发一个应用实例。
(6)要求满足以下几点:1)体现“行为型模式”的工作原理;2)尽量符合面向对象
的七条设计原则;3)每个实例要有类图、源代码和运行结果。
五、考核方法
1、教师对学生实验过程完成情况进行登记,记入实验成绩中。
2、学生完成实验后按要求撰写实验报告,根据实验报告确定每次实验成绩。
3、实验成绩以实验报告和学生实际操作能力为主,参考预习、提问、出勤情况和遵守
实验室规章制度情况等综合评定,实验成绩可以按 10%的比例计入课程总评成绩中。
六、实验指导书及主要参考书目
1、程细柱,软件设计模式(Java 版),人民邮电出版社,2018
2、刘伟,设计模式,清华大学出版社,2011
3、青岛东合信息技术有限公司,设计模式(Java 版),电子工业出版社,2012
4、王翔,设计模式 Java 版-模式工程化实现及扩展,电子工业出版社,2012
撰 写 人:程细柱
审 阅 人:蒋昌金
编写日期: 2018 年 7 月
5