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);
    }
}

 

posted @ 2023-10-19 21:36  樱花开到我身边  阅读(8)  评论(0)    收藏  举报