實驗14:代理模式

不会JAVA的小袁發表於2024-11-12

本次實驗屬於模仿型實驗,透過本次實驗學生將掌握以下內容:

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、執行截圖

相關文章