欢迎来到天天文库
浏览记录
ID:42687361
大小:838.50 KB
页数:40页
时间:2019-09-20
《软件体系结构-实验3》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、一、实验目的熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的设计模式,包括组合模式、外观模式、代理模式、观察者模式和策略模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式,并学会分析这些模式的使用效果。二、实验内容使用PowerDesigner和任意一种面向对象编程语言实现组合模式、外观模式、代理模式、观察者模式和策略模式,包括根据实例绘制模式结构图、编写模式实例实现代码,运行并测试模式实例代码。三、实验要求1.正确无误绘制组合模式、外观模式、代理模式、观察者模式和策略模式实例的模式结构图;2.使用任意一种面向对象编程语言实现组合模式、
2、外观模式、代理模式、观察者模式和策略模式实例,代码运行正确无误。四、实验步骤1.熟悉PowerDesigner15的常用功能;2.使用PowerDesigner绘制组合模式实例结构图并用面向对象编程语言实现该模式实例;3.使用PowerDesigner绘制外观模式实例结构图并用面向对象编程语言实现该模式实例;4.使用PowerDesigner绘制代理模式实例结构图并用面向对象编程语言实现该模式实例;5.使用PowerDesigner绘制观察者模式实例结构图并用面向对象编程语言实现该模式实例;6.使用PowerDesigner绘制策略模式结构图并用面向对象编程语言实现该模式。五、实验结果(1
3、)组合模式使用组合模式设计一个杀毒软件(AntiVirus)的框架,该软件既可以对某个文件夹(Folder)杀毒,也可以对某个指定的文件(File)进行杀毒,文件种类包括文本文件TextFile、图片文件ImageFile、视频文件VideoFile。绘制类图并编程模拟实现。Client.JavapublicclassClient{publicstaticvoidmain(Stringa[]){AntiVirusfile1,file2,file3,file4;Folderfolder1,folder2,folder3;file1=newImageFile();file2=newTextFi
4、le();folder1=newFolder();folder1.folder(file1);folder1.folder(file2);file3=newVideoFile();file4=newVideoFile();folder2=newFolder();folder2.folder(file3);folder2.folder(file4);folder3=newFolder();folder3.folder(folder1);folder3.folder(folder2);folder3.killVirus();}}Folder.javaimportjava.util.*;/**@
5、pdOidc2884a73-5c73-401d-82e6-9ccc06c94eb3*/publicclassFolderextendsAntiVirus{/**@pdOid886baa83-cd72-455f-a932-02d67e58f96e*/privateArrayListfileList=newArrayList();/**@pdOidc2de0a4d-493b-45c6-976c-e50d30853df2*/publicvoidfolder(AntiVirusfileName){fileList.add(fileName);}/**@pdOid0b4beaf6-0db4-42ab
6、-bd4a-557cd3a93ea0*/publicvoidkillVirus(){for(Objectobject:fileList){((AntiVirus)object).killVirus();}}}AntiVirus.javaimportjava.util.*;/**@pdOid9baeb686-2f5f-4d36-b333-d4b5f84c2f84*/publicabstractclassAntiVirus{/**@pdOid4216086d-885e-4fd9-a28a-2921c6ee733b*/publicvoidkillVirus(){//TODO:implement}
7、}ImageFile.javaimportjava.util.*;/**@pdOid5379c19b-bb4c-4912-aa42-fd76f0bcc4f1*/publicclassImageFileextendsAntiVirus{/**@pdOid935ed531-e401-46d8-94a8-054c549cc703*/publicvoidkillVirus(){System.out.println("ImageF
此文档下载收益归作者所有