2023/10/19 每日总结
今天完成了设计模式实验14
实验14:代理模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解代理模式的动机,掌握该模式的结构;
2、能够利用代理模式解决实际问题。
[实验任务一]:婚介所
婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示“对不起,不能早恋!”,并终止业务。
类图
源代码
package org.test14; public abstract class AbstractPermission { public abstract void findPartner(Person person); } package org.test14; public class Person { private String name; private int age; private String sex; public Person(String name, int age, String sex) { this.name = name; this.age = age; this.sex = sex; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } } package org.test14; public class ProxyPermission extends AbstractPermission{ private RealPermission realPermission=new RealPermission(); @Override public void findPartner(Person person) { if (person.getAge()>=18){ System.out.println("可以相亲"); }else { System.out.println("年龄未到18岁,不能相亲"); } } } package org.test14; public class RealPermission extends AbstractPermission{ @Override public void findPartner(Person person) { if (person.getAge()>=18){ System.out.println("可以相亲"); }else { System.out.println("年龄未到18岁,不能相亲"); } } } package org.test14; public class Client { public static void main(String[] args) { Person person = new Person("张三", 15, "男"); Person person1 = new Person("里斯", 20, "女"); ProxyPermission permission = new ProxyPermission(); permission.findPartner(person); permission.findPartner(person1); } }