设计模式上机实验二实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

设计模式实验二

实验报告书

专业班级软件 0703 学号 ********** 姓名吉亚云

指导老师刘伟

时间 2010年4月 24日

中南大学软件学院

实验二设计模式上机实验二

一、实验目的

使用PowerDesigner和任意一种面向对象编程语言实现几种常用的设计模式,加深对这些模式的理解,包括装饰模式、外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式。

二、实验内容

使用PowerDesigner和任意一种面向对象编程语言实现装饰模式、外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式,包括根据实例绘制相应的模式结构图、编写模式实现代码,运行并测试模式实例代码。

三、实验要求

1. 正确无误绘制装饰模式、外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式的模式结构图;

2. 使用任意一种面向对象编程语言实现装饰模式、外观模式、代理模式、职责链模式、命令模式、迭代器模式、观察者模式、状态模式、策略模式和模板方法模式,代码运行正确无误。

四、实验步骤

1. 使用PowerDesigner绘制装饰模式结构图并用面向对象编程语言实现该模式;

2. 使用PowerDesigner绘制外观模式结构图并用面向对象编程语言实现该模式;

3. 使用PowerDesigner绘制代理模式结构图并用面向对象编程语言实现该模式;

4. 使用PowerDesigner绘制职责链模式结构图并用面向对象编程语言实现该模式;

5. 使用PowerDesigner绘制命令模式结构图并用面向对象编程语言实现该模式;

6. 使用PowerDesigner绘制迭代器模式结构图并用面向对象编程语言实现该模式;

7. 使用PowerDesigner绘制观察者模式结构图并用面向对象编程语言实现该模式;

8. 使用PowerDesigner绘制状态模式结构图并用面向对象编程语言实现该模式;

9. 使用PowerDesigner绘制策略模式结构图并用面向对象编程语言实现该模式;

10. 使用PowerDesigner绘制模板方法模式结构图并用面向对象编程语言实现该模式。

五、实验报告要求

1. 提供装饰模式结构图及实现代码;

2. 提供外观模式结构图及实现代码;

3. 提供代理模式结构图及实现代码;

4. 提供职责链模式结构图及实现代码;

5. 提供命令模式结构图及实现代码;

6. 提供迭代器模式结构图及实现代码;

7. 提供观察者模式结构图及实现代码;

8. 提供状态模式结构图及实现代码;

9. 提供策略模式结构图及实现代码;

10. 提供模板方法模式结构图及实现代码。

六、实验结果

(1) 装饰模式

某图书管理系统中,书籍类(Book)具有借书方法borrowBook()和还书方法returnBook() 。现需要动态给书籍对象添加冻结方法freeze()和遗失方法lose()。使用装饰模式设计该系统,绘制类图并编程实现。

package DirectorPattern;

interface Book

{

void borrowBook();

void returnBook();

}

final class MyBook implements Book

{

public void borrowBook(){

System.out.println("MyBook borrowing!");

}

public void returnBook(){

System.out.println("MyBook returning!");

}

}

abstract class BookDirector implements Book

{

private Book book;

public BookDirector(Book book)

{

System.out.println("Book directoring!");

this.book=book;

}

public void borrowBook(){

book.borrowBook();

}

public void returnBook(){

book.returnBook();

}

}

class NewBook extends BookDirector

{

public NewBook(Book book)

{

super(book);

System.out.println("Book changed to NewBook!");

}

public void freeze()

{

System.out.println("Book freezing!");

}

public void lose()

{

System.out.println("Book lost!");

}

}

public class BookDirectorClient {

public static void main(String a[])

相关文档
最新文档