第8次实验--组合模式、代理模式实验.docx

上传人:聆听****声音 文档编号:710301 上传时间:2023-04-29 格式:DOCX 页数:8 大小:107.98KB
下载 相关 举报
第8次实验--组合模式、代理模式实验.docx_第1页
第1页 / 共8页
第8次实验--组合模式、代理模式实验.docx_第2页
第2页 / 共8页
第8次实验--组合模式、代理模式实验.docx_第3页
第3页 / 共8页
第8次实验--组合模式、代理模式实验.docx_第4页
第4页 / 共8页
第8次实验--组合模式、代理模式实验.docx_第5页
第5页 / 共8页
第8次实验--组合模式、代理模式实验.docx_第6页
第6页 / 共8页
第8次实验--组合模式、代理模式实验.docx_第7页
第7页 / 共8页
第8次实验--组合模式、代理模式实验.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

第8次实验--组合模式、代理模式实验.docx

《第8次实验--组合模式、代理模式实验.docx》由会员分享,可在线阅读,更多相关《第8次实验--组合模式、代理模式实验.docx(8页珍藏版)》请在冰点文库上搜索。

第8次实验--组合模式、代理模式实验.docx

实验8—组合模式、代理模式实验

学号:

123012012137

姓名:

张超红

实验目的:

加深对组合模式、代理模式原理的理解实验环境:

C#.Net/VC++.Net或MyEclipse(Java)等

实验内容

(一):

使用组合模式设计一个杀毒软件框架,该软件既可以对一个文件夹杀毒,也可以对一个文件杀毒,文件种类包括文本文件、图片文件、视频文件。

绘制类图并编程实现。

⑴实验过程:

①、构建实现场景,画出UML类图

②、实现代码,见演示源码

publicabstractclassAntiVirus {

publicvoidkillVirus(){}

}

importjava.util.ArrayList;

public classFolderextendsAntiVirus {privateArrayListfileList=newArrayList();publicvoidfolder(AntiVirusfileName){

fileList.add(fileName);

}

publicvoidkillVirus(){

for(Objectobject:

fileList){System.out.println(object.getClass().getName());((AntiVirus)object).killVirus();

}

}

}

public classImageFileextendsAntiVirus {

publicvoidkillVirus(){

System.out.println("ImageFile杀毒中");

}

}

public classTextFileextendsAntiVirus {

publicvoidkillVirus(){

System.out.println("TextFile杀毒中");

}

}

public classVideoFileextendsAntiVirus {

publicvoidkillVirus(){

System.out.println("VideoFile杀毒中");

}

}

publicclassClient{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){AntiVirusfile1,file2,file3,file4,file5,file6;Folderfloder1,floder2,floder3;

file1=newImageFile();file2=newTextFile();file3=newVideoFile();floder1=newFolder();floder1.folder(file1);floder1.folder(file2);floder1.folder(file3);

file4=newImageFile();file5=newTextFile();file6=newVideoFile();floder2=newFolder();floder2.folder(file1);floder2.folder(file2);floder2.folder(file3);

floder3=newFolder();floder3.folder(floder1);floder3.folder(floder2);

floder3.killVirus();

}

}

实验内容

(二):

某信息咨询公司推出收费的在线商业信息查询模块,需要对查询用户进行身份验证,并记录查询日志,以便根据查询次数收取查询费用,现使用代理模式设计该系统。

⑴实验过程:

①构建实现场景,画出UML类图

②实现代码

packageagent;

/**

*

*@author张超红

*

*/

publicclassUser{

publicUser(){

//TODO自动生成的构造函数存根

}

privateStringuserName;

privateStringpassword;

//是否被允许

privatebooleanisPermission;

//查询次数

IntegerselectCount;

//查询费用

privatedoubleselectOffFees;

publicStringgetUserName(){

returnuserName;

}

publicvoidsetUserName(StringuserName){

this.userName=userName;

}

publicStringgetPassword(){

returnpassword;

}

publicvoidsetPassword(Stringpassword){

this.password=password;

}

publicbooleanisPermission(){

returnisPermission;

}

publicvoidsetPermission(booleanisPermission){

this.isPermission=isPermission;

}

publicIntegergetSelectCount(){

returnselectCount;

}

publicvoidsetSelectCount(IntegerselectCount){

this.selectCount=selectCount;

}

publicdoublegetSelectOffFees(){

returnselectOffFees;

}

publicvoidsetSelectOffFees(doubleselectOffFees){

this.selectOffFees=selectOffFees;

}

}

packageagent;

/**

*

*@author张超红

*

*/

publicclassPermissionProxyimplementsAbstractCompony{

privateUseruser;

privateRealComponypermission=newRealCompony();

publicPermissionProxy(){

//TODO自动生成的构造函数存根

}

/*(非Javadoc)

*@seeagent.AbstractCompony#selectInfor()

*/@Override

publicvoidselectInfor(){

//TODO自动生成的方法存根

if(user.isPermission()){if(user.getSelectCount()>0){

permission.selectInfor();user.selectCount--;if(user.selectCount<=0){

user.setPermission(false);

}

}

System.out.println("您查询次数已经到达上限,请缴费...");

}

else{

System.out.println("要在本系统中查询商业信息请先注册登录...");

}

}

publicUserconstruct(){

returnnewUser();

}

}

packageagent;

/**

*

*@author张超红

*

*/

publicinterfaceAbstractCompony{

//查询用户信息

publicvoidselectInfor();

}

packageagent;

publicclassRealComponyimplementsAbstractCompony{

publicRealCompony(){

//TODO自动生成的构造函数存根

}

/*(非Javadoc)

*@seeagent.AbstractCompony#selectInfor()

*/@Override

publicvoidselectInfor(){

//TODO自动生成的方法存根

System.out.println("用户正在查询商业信息...");

}

}

packageagent;

/**

*

*@author张超红

*

*/

publicclassClient{

publicClient(){

//TODO自动生成的构造函数存根

}

publicstaticvoidmain(String[]args){RealComponypermission=newRealCompony();PermissionProxyper=newPermissionProxy();Useruser=newUser();

user.setSelectCount

(2);user.setPermission(true);

permission.selectInfor();

}

}

⑵实验讨论(效果分析):

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2