代理模式--继承

本文介绍了一个使用Java实现的代理模式案例。通过OrderProxy类代理Order类的方法调用,并增加了权限检查的功能。当尝试修改订单名称时,只有创建该订单的用户才拥有修改权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

众所周知,和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(); } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值