ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:176.54KB ,
资源ID:8137999      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8137999.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(设计模式十四.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

设计模式十四.docx

1、设计模式十四一实验目的1. 熟悉UML统一建模语言;2. 回顾熟悉适配器模式、桥接模式、组合、装饰模式;3. 熟悉XML文件的操作;4. 熟悉java的反射机制。二实验内容(1)使用Java语言实现一个双向适配器实例,使得猫可以学狗叫,狗可以学猫抓老鼠。(2)某日志记录器(Logger)既可以支持不同的操作系统,还可以支持多种编程语言,并且可以使用不同的输出方式。使用桥接模式设计该系统。(3)使用组合设计模式设计一个杀毒软件(AntiVirus)的框架,该软件既可以对某个文件夹(Folder)杀毒,也可以对某个指定的文件(File)进行杀毒,文件种类包括文本文件TextFile、图片文件Ima

2、geFile、视频文件VideoFile。(4)某图书管理系统中,书籍类(Book)具有借书方法borrowBook()和还书方法returnBook()。现需要动态给书籍对象添加冻结方法freeze()和遗失方法lose()。使用装饰模式设计该系统。三实验环境PC微机;Windows 操作系统;Visual Studio 程序集成环境。4实验内容(1)使用Java语言实现一个双向适配器实例,使得猫可以学狗叫,狗可以学猫抓老鼠。ArealCat.javapackage 设计模式实验十四周_1;public class ArealCat implements Cat public void ca

3、tlooks() System.out.println(I am a real cat,I have a real catlooks.); public void zhuoshu() System.out.println(I am a real cat,I have can catch a mouse.); ArealDog.javapackage 设计模式实验十四周_1;public class ArealDog implements Dog public void doglooks() System.out.println(I am a real dog,I have a real dog

4、looks.); public void bark() System.out.println(I am a real dog,I have bark.); Cat.javapackage 设计模式实验十四周_1;public interface Cat public void catlooks(); public void zhuoshu();CDAdapter.javapackage 设计模式实验十四周_1;public class CDAdapter implements Cat,Dog Cat cat=null; public CDAdapter(Cat cat) this.cat=ca

5、t; public void doglooks() System.out.println(I am a dog,too.); public void bark() cat.zhuoshu(); Dog dog=null; public CDAdapter(Dog dog) this.dog=dog; public void catlooks() System.out.println(I am a cat,too); public void zhuoshu() dog.bark(); Dog.javapackage 设计模式实验十四周_1;public interface Dog public

6、void doglooks(); public void bark();Client.javapackage 设计模式实验十四周_1;public class Client public static void main(String args) Cat AFakeCat =new CDAdapter(new ArealDog(); AFakeCat.catlooks(); AFakeCat.zhuoshu(); Dog AFakeDog=new CDAdapter(new ArealCat(); AFakeDog.doglooks(); AFakeDog.bark(); UML.java实验

7、结果:(2)某日志记录器(Logger)既可以支持不同的操作系统,还可以支持多种编程语言,并且可以使用不同的输出方式。使用桥接模式设计该系统。Logger.javapackage 设计模式实验十四周_2;public class Logger protected Language language; protected OperationSystem operationSystem; public Language getLanguage() return language; public OperationSystem getOperationSystem() return operatio

8、nSystem; public void setLanguage(Language language) this.language=language; public void setOperationSystem(OperationSystem operationSystem) this.operationSystem=operationSystem; public void output() System.out.println(输出Logger.); Consolelog.javapackage 设计模式实验十四周_2;public class Consolelog extends Log

9、ger public void output() System.out.println(用+operationSystem.Output()+操作系统,+language.Output()+编写,输出Consolelog.); Filelog.javapackage 设计模式实验十四周_2;public class Filelog extends Logger public void output() System.out.println(用+operationSystem.Output()+操作系统,+language.Output()+编写,输出Filelog.); XMLlog.java

10、package 设计模式实验十四周_2;public class XMLlog extends Logger public void output() System.out.println(用+operationSystem.Output()+操作系统,+language.Output()+编写,输出XMLlog.); OperationSystem.javapackage 设计模式实验十四周_2;public abstract class OperationSystem public abstract String Output();Linux.javapackage 设计模式实验十四周_2

11、;public class Linux extends OperationSystem public String Output() return Linux; Unix.javapackage 设计模式实验十四周_2;public class Unix extends OperationSystem public String Output() return Unix; Windows.javapackage 设计模式实验十四周_2;public class Windows extends OperationSystem public String Output() return Windo

12、ws; Language.javapackage 设计模式实验十四周_2;public abstract class Language public abstract String Output();Cyuyan.javapackage 设计模式实验十四周_2;public class Cyuyan extends Language public String Output() return C语言; Pascal.javapackage 设计模式实验十四周_2;public class Pascal extends Language public String Output() return

13、 Pascal; Java.javapackage 设计模式实验十四周_2;public class Java extends Language public String Output() return Java; Client.javapackage 设计模式实验十四周_2;public class Client public static void main(String args) Cyuyan cyuyan=new Cyuyan(); Java java=new Java(); Pascal pascal=new Pascal(); Linux linux=new Linux();

14、Windows windows=new Windows(); Unix unix=new Unix(); Consolelog consolelog=new Consolelog(); consolelog.setLanguage(cyuyan); consolelog.setOperationSystem(linux); consolelog.output(); Filelog filelog=new Filelog(); filelog.setLanguage(java); filelog.setOperationSystem(windows); filelog.output(); XML

15、log xmllog=new XMLlog(); xmllog.setLanguage(pascal); xmllog.setOperationSystem(unix); xmllog.output(); UML.java实验结果:(3)使用组合设计模式设计一个杀毒软件(AntiVirus)的框架,该软件既可以对某个文件夹(Folder)杀毒,也可以对某个指定的文件(File)进行杀毒,文件种类包括文本文件TextFile、图片文件ImageFile、视频文件VideoFile。AntiVirus.javapackage 设计模式实验十四周_3;public abstract class An

16、tiVirus public abstract void scan();ImageFile.javapackage 设计模式实验十四周_3;public class ImageFile extends AntiVirus public void scan() System.out.println(扫描图片文件); TextFile.javapackage 设计模式实验十四周_3;public class TextFile extends AntiVirus public void scan() System.out.println(扫描文本文件); VideoFile.java package

17、 设计模式实验十四周_3;public class VideoFile extends AntiVirus public void scan() System.out.println(扫描视频文件); Folder.javapackage 设计模式实验十四周_3;import java.util.*;public class Folder extends AntiVirus private ArrayList list=new ArrayList(); public void add(AntiVirus element) list.add(element); public void remov

18、e(AntiVirus element) list.remove(element); public void scan() for(Object object:list) (AntiVirus)object).scan(); Client.javapackage 设计模式实验十四周_3;public class Client public static void main(String a) AntiVirus obj1,obj2,obj3,obj4,obj5; Folder folder1,folder2,folder3; obj1=new ImageFile(); obj2=new Tex

19、tFile(); folder1=new Folder(); folder1.add(obj1); folder1.add(obj2); obj3=new VideoFile(); obj4=new VideoFile(); folder2=new Folder(); folder2.add(obj3); folder2.add(obj4); obj5=new ImageFile(); folder3=new Folder(); folder3.add(folder1); folder3.add(folder2); folder3.add(obj5); folder3.scan(); UML.

20、java实验结果:(4)某图书管理系统中,书籍类(Book)具有借书方法borrowBook()和还书方法returnBook()。现需要动态给书籍对象添加冻结方法freeze()和遗失方法lose()。使用装饰模式设计该系统。Book.javapackage 设计模式实验十四周_4;public interface Book public void borrowBook(); public void returnBook();Ibook.javapackage 设计模式实验十四周_4;public class Ibook implements Book public void borrowB

21、ook() System.out.println(借书!); public void returnBook() System.out.println(还书!); Changer.javapackage 设计模式实验十四周_4;public class Changer implements Book private Book book; public Changer(Book book) this.book=book; public void borrowBook() book.borrowBook(); public void returnBook() book.returnBook(); L

22、oseBook.javapackage 设计模式实验十四周_4;public class LoseBook extends Changer public LoseBook(Book book) super(book); public void lose() System.out.println(这本书已经遗失); FreezeBook.javapackage 设计模式实验十四周_4;public class FreezeBook extends Changer public FreezeBook(Book book) super(book); public void freeze() Syst

23、em.out.println(这本书已经被冻结); Client.javapackage 设计模式实验十四周_4;public class Client public static void main(String args) Ibook ibook=new Ibook(); ibook.borrowBook(); ibook.returnBook(); System.out.println(-); FreezeBook freezebook=new FreezeBook(ibook); freezebook.borrowBook(); freezebook.returnBook(); freezebook.freeze(); System.out.println(-); LoseBook losebook=new LoseBook(ibook); losebook.borrowBook(); losebook.returnBook(); losebook.lose(); UML.java实验结果:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1