publicclass Client{
publicstaticvoidmain(String[] args){
Salary sal = new Salary();
sal.dosalary();
}
}
简单的薪资计算这样实现倒是没有问题,此时如果我们想要对薪资计算这一个过程增加时间统计过程
publicclass Client{
publicstaticvoidmain(String[] args){
Salary sal = new Salary();
long start = System.nanoTime();
sal.dosalary();
long end = System.nanoTime();
System.out.println("spend time ->"+end-start);
}
}
publicclass pay{
publicvoiddopay(){
System.out.println("正在进行付款");
//一系列操作
}
}
publicclass Client{
publicstaticvoidmain(String[] args){
Salary sal = new Salary();
long start = System.nanoTime();
sal.dosalary();
long end = System.nanoTime();
System.out.println("salary time is "+end-start);
Pay pay = new Pay();
start = System.nanoTime();
pay.dopay();
end = System.nanoTime();
System.out.println("pay time is "+end-start);
}
}
publicclass Proxy{
private Interface inter;
publicProxy(Interface inter){
this.inter = inter;
}
publicvoiddoProxy(){
long start = System.nanoTime();
inter.dosome();
long end = System.nanoTime();
System.out.println("操作时间记录为:"+end-start);
}
}
客户端只需要简单的创建对象并进行相同的调用就可以实现不同的操作的时间统计了:
publicclass Client{
publicstaticvoidmain(String[] args){
//薪资时间计算
Interface inter = new Salary();
Proxy proxy = new Proxy(inter);
proxy.doProxy();
//付款时间计算
inter = new Pay();
proxy = new Proxy(inter);
proxy.doProxy();
}
}