2024/11/13
软件设计 实验14:代理模式
婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示“对不起,不能早恋!”,并终止业务。

public interface MarriageAgency { //修改个人信息 public void modifyUserInfo(); //查看他人信息 public void lookOthersInfo(); //设置年龄 public void setAge(int age); } public class RealMarriageAgency implements MarriageAgency { @Override public void modifyUserInfo() { System.out.println("修改个人信息"); } @Override public void lookOthersInfo() { System.out.println("查看他人信息"); } @Override public void setAge(int age) { } } public class MarriageAgencyProxy implements MarriageAgency{ private MarriageAgency marriageAgency = new RealMarriageAgency(); private int age = 18; //修改个人信息 @Override public void modifyUserInfo() { if (age < 18) { System.out.println("对不起,不能早恋"); } else if (age >= 18) { marriageAgency.modifyUserInfo(); } } //查看他人信息 @Override public void lookOthersInfo() { if (age < 18) { System.out.println("对不起,不能早恋"); } else if (age >= 18) { marriageAgency.lookOthersInfo(); } } //设置年龄 @Override public void setAge(int age) { this.age = age; } public class Main { public static void main(String[] args) { // 创建代理对象 MarriageAgencyProxy agencyProxy = new MarriageAgencyProxy(); // 测试年龄小于18岁 System.out.println("测试年龄小于18岁:"); agencyProxy.setAge(17); // 设置年龄为17 agencyProxy.modifyUserInfo(); // 尝试修改个人信息 agencyProxy.lookOthersInfo(); // 尝试查看他人信息 System.out.println(); // 测试年龄等于18岁 System.out.println("测试年龄等于18岁:"); agencyProxy.setAge(18); // 设置年龄为18 agencyProxy.modifyUserInfo(); // 尝试修改个人信息 agencyProxy.lookOthersInfo(); // 尝试查看他人信息 System.out.println(); // 测试年龄大于18岁 System.out.println("测试年龄大于18岁:"); agencyProxy.setAge(25); // 设置年龄为25 agencyProxy.modifyUserInfo(); // 尝试修改个人信息 agencyProxy.lookOthersInfo(); // 尝试查看他人信息 } }


浙公网安备 33010602011771号