第8次实验--组合模式、代理模式实验Word格式.docx
- 文档编号:947508
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:8
- 大小:107.98KB
第8次实验--组合模式、代理模式实验Word格式.docx
《第8次实验--组合模式、代理模式实验Word格式.docx》由会员分享,可在线阅读,更多相关《第8次实验--组合模式、代理模式实验Word格式.docx(8页珍藏版)》请在冰点文库上搜索。
①、构建实现场景,画出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);
⑵实验讨论(效果分析):
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 组合 模式 代理