请在 下方输入 要搜索的题目:

某信息咨询公司推出收费的在线商业信息查询模块,需要对查询用户进行身份验证并记录查询日志,以便根据查询次数收取查询费用,现使用代理模式设计该系统,所得类图如图1所示: 图1 类图 在图1中,AccessValidator类用于验证用户身份,它提供方法validate()来实现身份验证;Logger类用于记录用户查询日志,它提供方法log()来保存日志;RealSearcher类实现查询功能,它提供方法doSearch()来查询信息.ProxySearcher作为查询代理,维持对RealSearcher对象、AccessValidator对象和Logger对象的引用. 【Java代码】 class AccessValidator { public boolean validate(String userId) { //身份验证实现代码省略 } } class Logger { public void log(String userId) { //日志记录实现代码省略 } } interface Searcher { public String doSearch(String userId,String keyword); } class RealSearcher implements Searcher { public String doSearch(String userId,String keyword) { //信息查询实现代码省略 } } class ProxySearcher (1) { private RealSearcher searcher = new RealSearcher(); private AccessValidator validator; private Logger logger; public String doSearch(String userId,String keyword) { //如果身份验证成功,则执行查询 if( (2) ) { String result = searcher.doSearch(userId,keyword); (3) ; //记录查询日志 (4) ; //返回查询结果 } else { return null; } } public boolean validate(String userId) { validator = new AccessValidator(); (5) ; } public void log(String userId) { logger = new Logger(); (6) ; } } class Test { public static void main(String args[]) { (7) ; //针对抽象编程,客户端无须分辨真实主题类和代理类 searcher = new ProxySearcher(); String result = searcher.doSearch("Sunny","Money"); //此处省略后续处理代码 } }

发布时间:2024-06-11 15:03:17
推荐参考答案 ( 由 搜题小帮手 官方老师解答 )
联系客服
答案:

以下文字与答案无关

提示:有些试题内容 显示不完整,文字错误 或者 答案显示错误等问题,这是由于我们在扫描录入过程中 机器识别错误导致,人工逐条矫正总有遗漏,所以恳请 广大网友理解。

相关试题
登录 - 搜题小帮手
点我刷新
立即注册
注册 - 搜题小帮手
点我刷新
立即登录