众所周知,和aop的思想很接近,可以控制对代理对象的访问:
package com.jerry.design.proxy;
// 测试类
public class Test {
public static void main(String[] args) {
OrderProxy o = new OrderProxy("book",12.00,1,"yushh");
System.out.println(o.toString());
o.setName("book2","yushh");
System.out.println(o.toString());
}
}
class Order{
private String name;
private double totle;
private int num;
private String operator;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getTotle() {
return totle;
}
public void setTotle(double totle) {
this.totle = totle;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getOperator() {
return operator;
}
public void setOperator(String operator) {
this.operator = operator;
}
public Order(String name, double totle, int num, String operator) {
super();
this.name = name;
this.totle = totle;
this.num = num;
this.operator = operator;
}
@Override
public String toString() {
return "Order [name=" + name + ", totle=" + totle + ", num=" + num
+ ", operator=" + operator + "]";
}
}
class OrderProxy extends Order{
public OrderProxy(String name, double totle, int num, String operator) {
super(name, totle, num, operator);
}
public void setName(String name,String user){
if(user.equals(this.getOperator())){
super.setName(name);
}else{
System.out.println("没有更改权限!!");
}
}
public String toString() {
return super.toString();
}
}