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

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

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

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

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

①、构建实现场景,画出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 {

System.out.println("

ImageFile杀毒中"

);

public classTextFileextendsAntiVirus {

TextFile杀毒中"

public classVideoFileextendsAntiVirus {

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;

publicclassPermissionProxyimplementsAbstractCompony{

privateUseruser;

privateRealComponypermission=newRealCompony();

publicPermissionProxy(){

/*(非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);

您查询次数已经到达上限,请缴费..."

else{

要在本系统中查询商业信息请先注册登录..."

publicUserconstruct(){

returnnewUser();

publicinterfaceAbstractCompony{

//查询用户信息

publicvoidselectInfor();

publicclassRealComponyimplementsAbstractCompony{

publicRealCompony(){

用户正在查询商业信息..."

publicClient(){

publicstaticvoidmain(String[]args){RealComponypermission=newRealCompony();

PermissionProxyper=newPermissionProxy();

Useruser=newUser();

user.setSelectCount

(2);

user.setPermission(true);

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

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

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

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

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