代理模式
实验14:代理模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解代理模式的动机,掌握该模式的结构;
2、能够利用代理模式解决实际问题。
[实验任务一]:婚介所
婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示“对不起,不能早恋!”,并终止业务。
实验要求:
1. 提交类图;
2. 提交源代码;
public interface AbstractPermission {
void modifyUser();
void lookOthers();
void setAge(int age);
}
public class RealPermission implements AbstractPermission {
@Override
public void modifyUser() {
System.out.println("修改用户信息");
}
@Override
public void lookOthers() {
System.out.println("查看他人信息");
}
@Override
public void setAge(int age) {
// 这里不需要实现具体逻辑
}
}
public class PermissionProxy implements AbstractPermission {
private RealPermission permission = new RealPermission();
private int age = 18;
@Override
public void modifyUser() {
if (age < 18) {
System.out.println("不能早恋!");
} else {
permission.modifyUser();
}
}
@Override
public void lookOthers() {
if (age < 18) {
System.out.println("能早恋!");
} else {
permission.lookOthers();
}
}
@Override
public void setAge(int age) {
this.age = age;
}
}
public class Client {
public static void main(String[] args) {
AbstractPermission permission = new PermissionProxy();
permission.setAge(18);
permission.modifyUser();
permission.lookOthers();
System.out.println(" ");
permission.setAge(15);
permission.modifyUser();
permission.lookOthers();
}
}