2.在某应用软件中需要记录业务方法的调用日志,在不修改现有业务类的基础上为每一个类提供一个日志记录代理类,在代理类中输出日志,例如在业务方法 method() 调用之前输出“方法 method() 被调用,调用时间为 2014-11-5 10:10:10 ”,调用之后如果没有抛异常则输出“方法 method() 调用成功”,否则输出“方法 method() 调用失败”。在代理类中调用真实业务类的业务方法,使用代理模式设计该日志记录模块的结构,绘制类图并编程模拟实现。


代码

//Subject:
package 测试;public abstract class Subject {public abstract void method();
}//RealSubject:
package 测试;public class RealSubject extends Subject{@Overridepublic void method() {System.out.println("631卢本伟的代码");}
}//Proxy:
package 测试;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Proxy extends Subject {private RealSubject realSubject ;public void before(){Date now = new Date( );SimpleDateFormat ft = new SimpleDateFormat("yyyy.MM.dd ',' hh:mm:ss");System.out.println("方法method()被调用,调用时间为:"+ft.format(now));}@Overridepublic void method() {realSubject = new RealSubject();before();try {realSubject.method();after();}catch (NullPointerException e){System.out.println("方法method()调用失败");}}public void after(){System.out.println("方法method()调用成功");}
}//Client:
package 测试;
public class Client {public static void main(String[] args) {Subject subject;subject = new Proxy();subject.method();    }
}

运行结果


整理不易, 如果对你产生了帮助,还请给博主一个赞哦, 大家的点赞,是我更新的最大动力~

2.在某应用软件中需要记录业务方法的调用日志,在不修改现有业务类的基础上为每一个类提供一个日志记录代理类,在代理类中输出日志,例如在业务方法 method() 调用之前输出“方法 method() 被相关推荐

  1. 定义一个基本的银行账户类。在基本账户类的基础上派生出1年期定期账户、2年期定期账户、3年期定期账户和5年期定期账户。定义一个n个基类指针组成的数组,随机生成n个各类派生类的对象。让每个指针指向一个派生

    定义一个基本的银行账户类.在基本账户类的基础上派生出1年期定期账户.2年期定期账户.3年期定期账户和5年期定期账户.定义一个n个基类指针组成的数组,随机生成n个各类派生类的对象.让每个指针指向一个派生 ...

  2. 7.20在学生类student和教师类teacher 基础上再派生出一个助教类

    /*在学生类student和教师类teacher基础上 再派生出一个助教类TeachAssistant,一个助教既具有教师的特征, 又具有学生的特征,还有自己的新特征:工资(wage). 要求将助教类 ...

  3. 【Scala教程】如何在已掌握的Java知识基础上快速上手Scala?【个人学习记录】

    如何在已掌握的Java知识基础上学习Scala 前言 正文开始! 1. 编译运行 2. 声明变量 3. 输出 4. 显式指定变量类型 5. 范围区间 6. 写入文本文件 7. 读取文本文件 8. if ...

  4. 在Vue3项目中使用 Echarts 绘制股票图表的分享(五):分时图的基础上绘制出五日图

    效果展示 分析:五日图其实也就是展示了相当于五天的分时图的数据量:对比前面的分时图绘制效果,我们可以发现:它多出了对这五天内的现价做个最高价和最低价的标注,并且对最新时间段的现价数据做个闪烁点+涟漪特 ...

  5. 11,外观模式(Facade Pattern)是为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。...

    Facade模式也叫外观模式,是由GoF提出的23种设计模式中的一种.Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面.这个一致的简单的界面被称作facade. ...

  6. 理想中的Web3信誉体系:如何在Web2基础上升级?

    随着对 Web3 的讨论愈发热烈和深入,用户对 Web3 有了更加深刻的认识,对 Web3 项目也有了更加明确和更高层次的要求,这也使得项目方和用户将目光投向一些还在探索中的话题和领域,比如" ...

  7. 浅谈Java和SAP ABAP的静态代理和动态代理,以及ABAP面向切面编程的尝试

    文章目录 Java的静态代理 静态代理的优缺点 ABAP的静态代理 Spring AOP的动态代理 JDK动态代理的优缺点 CGLIB动态代理的优缺点 ABAP CGLIB的模拟实现 ABAP Pre ...

  8. C++(三)——类和对象(上)

    构造函数 #include<iostream> using namespace std;class Person { public:int age;Person() {cout <& ...

  9. java输出日志_java代码中如何正确使用loggger日志输出

    java代码中如何正确使用loggger日志输出 发布时间:2019-06-28作者:spider阅读(2980) 当你遇到问题的时候,只能通过debug功能来确定问题,你应该考虑打日志,良好的系统, ...

最新文章

  1. @EnableScheduling和@Scheduled的使用(初级)
  2. flutter 调用原生安卓插件_Flutter 如何调用Android和iOS原生代码-阿里云开发者社区...
  3. autorelease使用注意事项
  4. Sketchup Pro(草图大师) 2017中文版 64位
  5. 人工智能学习知识框架(知识点、实际应用)-思维导图汇总-xmind原图
  6. 系统无ifconfig,一条命令获取本机ip并将其赋值给指定变量来使用
  7. python中的utils模块_使用Python的package机制如何简化utils包设计详解
  8. 代理ARP协议(Proxy ARP)
  9. CocoaPods集成ShareSDK
  10. 对话诸葛 io 孔淼:数据分析如何做,才能圈住用户?
  11. Java基础知识点复习知识点(一)变量,流程控制,数组
  12. 单光感pid巡线_PID非常好的光感巡线思路
  13. AXI总线(top)
  14. 手把手教你破解软件,每一步都有图示,你若再不会就太XX
  15. 无需密码自己卸载深信服EDR软件
  16. Dell xps13 win10 安装于PCI-E SSD
  17. Bless You Autocorrect!(字典树上建图)
  18. Tensorflow2.0+Anaconda + Windows10+cuda10.0+python3.7+spyder安装教程
  19. 从RDA5981A/B/C编译后map文件和datasheet分析内存分配情况
  20. 视频处理软件分三卷,我的积分只够下载两卷的,还剩下一卷得赚积分才行,郁闷中!大家帮帮忙吧!!!

热门文章

  1. 收藏:DPDK内存基本概念
  2. 开放下载!阿里云《深入浅出Kubernetes.pdf》
  3. WebRTC能给我带来什么?
  4. Pinterest:Android系统上的视频管理
  5. 音视频技术开发周刊 81期
  6. 沙龙报名 | 数据库技术探索及行业应用
  7. 视频回顾丨带你逛腾讯全球数字生态大会「腾讯技术工程」展区
  8. 解决多进程模式下引起的“惊群”效应
  9. ubuntu16.04安装curl
  10. leetcode 500. 键盘行(Java版)