实验14:代理模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 

1、理解代理模式的动机,掌握该模式的结构;

2、能够利用代理模式解决实际问题。

 

[实验任务一]:婚介所

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

实验要求:

1. 提交类图;

2. 提交源代码;

3. 注意编程规范。

1类图

 

源代码

package org.example;

public abstract class Center
{
    protected String name;
    public Center(String name){this.name=name;}
    public abstract void findlove(Person person);
}

package org.example;

public class Client
{
    public static void main(String args[])
    {
        Center center1,center2,center3;
        center1=new Marry("婚介");
        center2=new Marry("婚介");
        center3=new Marry("婚介");
        Person b1=new Person("小帅",29);
        Person b2=new Person("小美",16);
        Person b3=new Person("小明",50);
        center1.findlove(b1);
        center2.findlove(b2);
        center3.findlove(b3);
    }
}

package org.example;

public class Marry extends Center
{
     public Marry(String name){super(name);}
        public void findlove(Person person)
        {
            if(person.getAge()<18)
            {
                System.out.println(name+":"+person.getName()+",对不起!不能早恋!");
            }
            else if(person.getAge()<45)
            {
                System.out.println(name+":"+person.getName()+",我们会为您匹配合适的伴侣!");
            }
            else
            {
                System.out.println(name+":"+person.getName()+",对不起!你的年龄不符合!");
            }
        }
}

package org.example;

public class Person {
    protected String name;
    protected int age;
    public Person(String name,int age)
    {
        this.name=name;
        this.age=age;
    }
    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;
    }
}

 

3、运行截图

 

 

posted @ 2024-11-12 19:35  不会JAVA的小袁  阅读(4)  评论(0编辑  收藏  举报