)已知 2025 级计科班级同学都是通过班长转交班费给老师。可以理解班长就是代理类(代理学生上 交班费),学生就是被代理类或者理解为目标类。请写出使用代理模式完成该活动及测试的简洁JAVA 代码
时间: 2024-10-27 07:09:10 浏览: 18
Net实战商用源码---asp.net班级班费管理系统源码
在Java中,我们可以使用代理模式来模拟这个场景。代理模式允许我们在不影响目标类的情况下增加额外的功能或修改行为。在这个例子中,我们创建一个`ProxyStudent`类作为代理,它代表真实的学生并处理班费管理。
```java
// 定义学生接口
interface Student {
void payFee();
}
// 定义真实的学生类,即目标类
class RealStudent implements Student {
@Override
public void payFee() {
System.out.println("Real student is paying the fee.");
}
}
// 创建学生代理类
class ProxyStudent implements Student {
private RealStudent realStudent;
// 构造函数,接收真实学生实例
public ProxyStudent(RealStudent realStudent) {
this.realStudent = realStudent;
}
@Override
public void payFee() {
System.out.println("Proxy is collecting fees from students...");
// 转交费用,这里只是一个示例,实际操作可以更复杂
realStudent.payFee();
}
}
public class Main {
public static void main(String[] args) {
// 实例化真实学生
RealStudent realStudent = new RealStudent();
// 使用代理模式,通过代理对象操作
Student proxy = new ProxyStudent(realStudent);
proxy.payFee(); // 输出:Proxy is collecting fees from students...
// 此处不会直接打印"Real student is paying the fee."
}
}
```
阅读全文