System.out.print(m[i]+"");
}
System.out.println("\n"+dataoperation.search(m,6));
}
}
2.类图:
Client
aPlayer
rzzr牙
□
+pJayfStringfileName).void
AA
WMPAdapter
-■的np.WindowsMediaPlayer
+play(StringfileName).void
WirtdowsMediaPlayer
+play(StringfileName)void
实现代码:
Player.java
publicinterfacePlayer{
publicabstractvoidplay(StringfileName);
}
WMPAdapter.java
publicclassWMPAdapterimplementsPlayer{privateWindowsMediaPlayerwmp;
publicWMPAdapter(){
wmp=newWindowsMediaPlayer();
}
publicvoidplay(StringfileName){
wmp.play(fileName);
}
}
RPAdapter.java
publicclassRPAdapterimplementsPlayer{
privateRealPlayerrp;
publicRPAdapter(){
rp=newRealPlayer。
;
}
publicvoidplay(StringfileName){
rp.play(fileName);
}
}
WindowsMediaPlayer.java
publicclassWindowsMediaPlayer{
publicvoidplay(StringfileName){
System.out.println(fileName+"用WindowsMediaPlayer播放");
}
}
RealPlayer.java
publicclassRealPlayer{
publicvoidplay(StringfileName){
System.out.println(fileName+"用RealPlayer播放");
};
}
XMLUtil.java
importjavax.xml.parsers.*;
importorg.w3c.dom.*;
importorg.xml.sax.SAXException;
importjava.io.*;
publicclassXMLUtil{
//该方法用于从XML配置文件中提取具体类类名,并返回一个实例对象
publicstaticObjectgetBean(){
try{
〃创建DOM文档对象
DocumentBuilderFactorydFactory=DocumentBuilderFactory.newlnstance();
DocumentBuilderbuilder=dFactory.newDocumentBuilder();
Documentdoc;
doc=builder.parse(newFile("src/config.xml"));
〃获取包含类名的文本节点
NodeListnl=doc.getElementsByTagName("className");
NodeclassNode=nl.item(O).getFirstChild();
StringcName=classNode.getNodeValue();
//通过类名生成实例对象并将其返回
Classc=Class.forName(cName);
Objectobj=c.newlnstance();
returnobj;
}
catch(Exceptione){
e.printStackTrace();
returnnuII;
}
}
}
Client.java
publicclassClient{
publicstaticvoidmain(String[]args){
Playerp;
p=(Player)XMLUtil.getBean();
p.play("RushHour");
}
}
3.类图:
Afcslmctf-ih
[atwlracij
+kNVirus“void
实现代码:
AbstractFile.java
publicabstractclassAbstractFile{
publicabstractvoidkillVirus();
}
Folder.java
importjava.util.ArrayList;
publicclassFolderextendsAbstractFile{
privateStringfileName;
privateArrayListfileList=newArrayList();
publicvoidkillVirus(){
System.out.println(”对文件夹”+fileName+"杀毒");
//调用文件夹内成员的杀毒方法
for(Objectobj:
fileList)
((AbstractFile)obj).killVirus();
publicvoidadd(AbstractFileabFile){
fileList.add(abFile);
}
publicvoidremove(AbstractFileabFile){
fileList.remove(abFile);
}
publicFolder(StringfileName){
this.fileName=fileName;
}
publicAbstractFilegetChild(intn){
returnfileList.get(n);
}
}
ImageFile.java
publicclassImageFileextendsAbstractFile{privateStringfileName;
publicvoidkillVirus(){
System.out.println(”对图像文件”+fileName+"杀毒");
}
publicImageFile(StringfileName){
this.fileName=fileName;
}
}
TextFile.java
publicclassTextFileextendsAbstractFile{privateStringfileName;
publicvoidkillVirus(){
System.out.println(”对文本文件”+fileName+"杀毒");
publicTextFile(StringfileName){
this.fileName=fileName;
}
}
publicclassVideoFileextendsAbstractFile{
privateStringfileName;
publicvoidkillVirus(){
System.out.println(”对视频文件”+fileName+"杀毒");
}
publicVideoFile(StringfileName){
this.fileName=fileName;
}
}
Client.java
publicclassClient{
publicstaticvoidmain(String[]args){
AbstractFilefile1,file2,file3;
Folderfolder1,folder2;
file1=newImageFile(”风景");
file2=newTextFile("乔布斯全传");
file3=newVideoFile("尖峰时刻”);
folder1=newFolder("总文件夹");
folder2=newFolder("子文件夹");
folder2.add(file1);
folder2.add(file2);
folder1.add(file3);
folder1.add(folder2);
folder1.killVirus();
4.
类图:
实现代码:
AbstractBranch.java
publicabstractclassAbstractBranch{
publicabstractvoidreceiveDoc();
publicabstractStringgetName();
}
AdOffice.java
publicclassAdOfficeextendsAbstractBranch{
privateStringname;
publicvoidreceiveDoc(){
System.out.println("行政办公室收到文件");
}
publicAdOffice(Stringname){
this.name=name;
}
publicStringgetName(){
returnname;
}
EdOffice.java
publicclassEdOfficeextendsAbstractBranch{privateStringname;
publicvoidreceiveDoc(){
System.out.println("教务办公室收到文件");}
publicEdOffice(Stringname){
this.name=name;
}
publicStringgetName(){
returnname;
}
}
Branch.java
importjava.util.ArrayList;
publicclassBranchextendsAbstractBranch{
privateArrayListlist;
privateStringname;
publicBranch(Stringname){
this.name=name;
}
publicvoidreceiveDoc(){
System.out.println(name+"分部收到文件”);}
publicAbstractBranchgetChild(intn){
returnlist.get(n);
publicvoidadd(AbstractBranchabBranch){list.add(abBranch);
}
publicvoidremove(AbstractBranchabBranch){
list.remove(abBranch);
}
publicStringgetName(){
returnname;
}
publicvoidsendDoc(AbstractBranchabBranch){
System.out.println(name+"分部发送文件到"+abBranch.getName());abBranch.receiveDoc();
}
}
Client.java
publicclassClient{
publicstaticvoidmain(String[]args){
AbstractBranchab1,ab2;
Branchb1,b2,b3,b4;
ab1=newAdOffice(”行政办公室");
ab2=newEdOffice(”教务办公室”);
b1=newBranch("北京");
b2=newBranch("湖南");
b3=newBranch("长沙");
b4=newBranch("湘潭");
b1.sendDoc(b2);
b2.sendDoc(b3);
b2.sendDoc(b4);
b4.sendDoc(abl);
b3.sendDoc(ab2);
}
}
5.类图:
B0ckUpFac0