电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

软件体系结构试验8VIP免费

软件体系结构试验8_第1页
1/6
软件体系结构试验8_第2页
2/6
软件体系结构试验8_第3页
3/6
1、某信息咨询公司推出收费的在线商业信息查询模块,需要对查询用户进行身份验证(ValidateProxy),并记录查询日志,以便根据查询次数收取查询费用,现使用代理模式设计该系统。(1)UML类图(2)实现代码packagework81;/***@Description:*@Author:Xxx*@Date:2020年4月27日**/publicinterfaceSubject{voidvalidate();}packagework81;importjava.util.HashMap;/***@Description:*@Author:Xxx*@Date:2020年4月27日**/publicclassRealSubjectimplementsSubject{@Overridepublicvoidvalidate(){System.out.println("正在验证客户身份……");}}packagework81;/***@Description:*@Author:Xxx*@Date:2020年4月27日**/publicclassValidateProxyimplementsSubject{privateRealSubjectsubject;publicValidateProxy(RealSubjectiSubject){this.subject=iSubject;}@Overridepublicvoidvalidate(){before();subject.validate();after();}publicvoidsearchLog(){System.out.println("查询日志记录……");}publicvoidbefore(){System.out.println("验证客户身份之前……");}publicvoidafter(){System.out.println("验证客户身份之后……");this.searchLog();}}(3)测试代码packagework81;/***@Description:*@Author:Xxx*@Date:2020年5月10日**/publicclassClient{publicstaticvoidmain(String[]args){ValidateProxyvProxy=newValidateProxy(newRealSubject());vProxy.validate();}}(4)结果截图2、在某电子商务系统中,为了提高查询性能,需要将一些频繁查询的数据保存到内存的辅助存储对象中(建议使用Map实现)。用户在执行查询操作时,先判断辅助存储对象中是否存在待查询的数据,如果不存在,则通过数据操作对象查询并返回数据,然后将数据保存到辅助存储对象中,否则直接返回存储在辅助存储对象中的数据。现采用代理模式中的缓存代理实现该功能。(1)UML类图(2)实现代码packagework82;/***@Description:*@Author:Xxx*@Date:2020年5月10日**/publicinterfaceISubject{booleansearchInCache(Stringusername,Stringdata);}packagework82;importjava.util.HashMap;importjava.util.Map;importjava.util.concurrent.ConcurrentHashMap;/***@Description:*@Author:Xxx*@Date:2020年5月10日**/publicclassRealSubjectimplementsISubject{privateMapcacheMap=newHashMap<>();publicvoidsetCacheMap(MapcacheMap){this.cacheMap=cacheMap;}publicMapgetCacheMap(){returncacheMap;}publicbooleanfindData(Stringusername,Stringdata){booleanisExist=false;if(this.getCacheMap().containsKey(username)this.getCacheMap().containsValue(data)){isExist=true;}returnisExist;}@OverridepublicbooleansearchInCache(Stringusername,Stringdata){if(this.findData(username,data)){returntrue;}else{returnfalse;&}}publicvoidsaveInCache(Stringusername,Stringdata){this.getCacheMap().put(username,data);System.out.println("用户:"+username+"记录:"+data+"缓存成功!");}}packagework82;importjava.util.Map;importjava.util.concurrent.ConcurrentHashMap;/***@Description:*@Author:Xxx*@Date:2020年5月10日**/publicclassCacheProxyimplementsISubject{privateRealSubjectrSubject;publicCacheProxy(RealSubjectrealSubject){this.rSubject=realSubject;}publicvoidbefore(){System.out.println("开始查询……");}@OverridepublicbooleansearchInCache(Stringusername,Stringdata){before();if(rSubject.searchInCache(username,data)){System.out.print("查到结果---");System.out.println("用户名:"+username+"记录:"+data);after();returntrue;}else{System.out.println("缓存中无该记录!");rSubject.saveInCache(username,data);after();returnfalse;}}publicvoidafter(){System.out.println("查询结束!");}}(3)测试代码packagework82;/***@Description:*@Author:Xxx*@Date:2020年5月10日**/publicclassClient{publicstaticvoidmain(String[]args){try{CacheProxycProxy=newCacheProxy(newRealSubject());cProxy.searchInCache("zhangSan","data3");System.out.println("===================");cProxy.searchInCache("zhangSan","data3");}catch(Exceptione){e.printStackTrace();}}}(4)结果截图

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

软件体系结构试验8

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部