设计模式十四Word格式.docx
《设计模式十四Word格式.docx》由会员分享,可在线阅读,更多相关《设计模式十四Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
![设计模式十四Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/28/23643221-3489-4fe4-9017-81a431d9edc3/23643221-3489-4fe4-9017-81a431d9edc31.gif)
publicvoidcatlooks(){
System.out.println("
Iamarealcat,Ihavearealcatlooks."
);
}
publicvoidzhuoshu(){
Iamarealcat,Ihavecancatchamouse."
}
ArealDog.java
publicclassArealDogimplementsDog{
publicvoiddoglooks(){
Iamarealdog,Ihavearealdoglooks."
publicvoidbark(){
Iamarealdog,Ihavebark."
Cat.java
publicinterfaceCat{
publicvoidcatlooks();
publicvoidzhuoshu();
CDAdapter.java
publicclassCDAdapterimplementsCat,Dog{
Catcat=null;
publicCDAdapter(Catcat){
this.cat=cat;
Iamadog,too."
cat.zhuoshu();
Dogdog=null;
publicCDAdapter(Dogdog){
this.dog=dog;
Iamacat,too"
dog.bark();
Dog.java
publicinterfaceDog{
publicvoiddoglooks();
publicvoidbark();
Client.java
publicclassClient{
publicstaticvoidmain(String[]args){
CatAFakeCat=newCDAdapter(newArealDog());
AFakeCat.catlooks();
AFakeCat.zhuoshu();
DogAFakeDog=newCDAdapter(newArealCat());
AFakeDog.doglooks();
AFakeDog.bark();
UML.java
实验结果:
Logger.java
package设计模式实验十四周_2;
publicclassLogger{
protectedLanguagelanguage;
protectedOperationSystemoperationSystem;
publicLanguagegetLanguage(){
returnlanguage;
publicOperationSystemgetOperationSystem(){
returnoperationSystem;
publicvoidsetLanguage(Languagelanguage){
this.language=language;
publicvoidsetOperationSystem(OperationSystemoperationSystem){
this.operationSystem=operationSystem;
publicvoidoutput(){
输出Logger."
Consolelog.java
publicclassConsolelogextendsLogger{
用"
+operationSystem.Output()+"
操作系统,"
+language.Output()+"
编写,输出Consolelog."
Filelog.java
publicclassFilelogextendsLogger{
编写,输出Filelog."
XMLlog.java
publicclassXMLlogextendsLogger{
编写,输出XMLlog."
OperationSystem.java
publicabstractclassOperationSystem{
publicabstractStringOutput();
Linux.java
publicclassLinuxextendsOperationSystem{
publicStringOutput(){
return"
Linux"
;
Unix.java
publicclassUnixextendsOperationSystem{
Unix"
Windows.java
publicclassWindowsextendsOperationSystem{
Windows"
Language.java
publicabstractclassLanguage{
Cyuyan.java
publicclassCyuyanextendsLanguage{
C语言"
Pascal.java
publicclassPascalextendsLanguage{
Pascal"
Java.java
publicclassJavaextendsLanguage{
Java"
Cyuyancyuyan=newCyuyan();
Javajava=newJava();
Pascalpascal=newPascal();
Linuxlinux=newLinux();
Windowswindows=newWindows();
Unixunix=newUnix();
Consolelogconsolelog=newConsolelog();
consolelog.setLanguage(cyuyan);
consolelog.setOperationSystem(linux);
consolelog.output();
Filelogfilelog=newFilelog();
filelog.setLanguage(java);
filelog.setOperationSystem(windows);
filelog.output();
XMLlogxmllog=newXMLlog();
xmllog.setLanguage(pascal);
xmllog.setOperationSystem(unix);
xmllog.output();
AntiVirus.java
package设计模式实验十四周_3;
publicabstractclassAntiVirus{
publicabstractvoidscan();
ImageFile.java
publicclassImageFileextendsAntiVirus{
publicvoidscan(){
扫描图片文件"
TextFile.java
publicclassTextFileextendsAntiVirus{
扫描文本文件"
VideoFile.java
publicclassVideoFileextendsAntiVirus{
扫描视频文件"
Folder.java
importjava.util.*;
publicclassFolderextendsAntiVirus{
privateArrayListlist=newArrayList();
publicvoidadd(AntiViruselement){
list.add(element);
publicvoidremove(AntiViruselement){
list.remove(element);
for(Objectobject:
list){
((AntiVirus)object).scan();
}
publicstaticvoidmain(Stringa[]){
AntiVirusobj1,obj2,obj3,obj4,obj5;
Folderfolder1,folder2,folder3;
obj1=newImageFile();
obj2=newTextFile();
folder1=newFolder();
folder1.add(obj1);
folder1.add(obj2);
obj3=newVideoFile();
obj4=newVideoFile();
folder2=newFolder();
folder2.add(obj3);
folder2.add(obj4);
obj5=newImageFile();
folder3=newFolder();
folder3.add(folder1);
folder3.add(folder2);
folder3.add(obj5);
folder3.scan();
Book.java
package设计模式实验十四周_4;
publicinterfaceBook{
publicvoidborrowBook();
publicvoidreturnBook();
Ibook.java
publicclassIbookimplementsBook{
publicvoidborrowBook(){
借书!
"
publicvoidreturnBook(){
还书!
Changer.java
publicclassChangerimplementsBook{
privateBookbook;
publicChanger(Bookbook){
this.book=book;
book.borrowBook();
book.returnBook();
LoseBook.java
publicclassLoseBookextendsChanger{
publicLoseBook(Bookbook){
super(book);
publicvoidlose(){
这本书已经遗失"
FreezeBook.java
publicclassFreezeBookextendsChanger{
publicFreezeBook(Bookbook){
publicvoidfreeze(){
这本书已经被冻结"
Ibookibook=newIbook();
ibook.borrowBook();
ibook.returnBook();
-------------------------"
FreezeBookfreezebook=newFreezeBook(ibook);
freezebook.borrowBook();
freezebook.returnBook();
freezebook.freeze();
LoseBooklosebook=newLoseBook(ibook);
losebook.borrowBook();
losebook.returnBook();
losebook.lose();