软件设计实验14:代理模式
实验14:代理模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解代理模式的动机,掌握该模式的结构;
2、能够利用代理模式解决实际问题。
[实验任务一]:婚介所
婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示“对不起,不能早恋!”,并终止业务。
实验要求:
1. 提交类图;
2. 提交源代码;
public class MatchMakingProxy implements AbstractMatchMaking{
private MatchMaking client=new MatchMaking();
private int age=18;
@Override
public void viewInformation() {
// TODO 自动生成的方法存根
System.out.println("您正在浏览查看婚介对象基本信息");
}
@Override
public void postAnnouncement() {
// TODO 自动生成的方法存根
if(age>=18) {
System.out.println("发布征婚启事");
}else if(age<18) {
System.out.println("对不起,不能早恋!");
}
}
@Override
public void improveInformation(int age) {
// TODO 自动生成的方法存根
this.age=age;
if(age<18) {
System.out.println("对不起,不能早恋!");
}else if(age>=18) {
System.out.println("信息登记完成......");
}
}
}
public class MatchMaking implements AbstractMatchMaking{
@Override
public void viewInformation() {
// TODO 自动生成的方法存根
System.out.println("您正在浏览查看婚介对象基本信息");
}
@Override
public void postAnnouncement() {
// TODO 自动生成的方法存根
System.out.println("您发布了一条征婚启事,请注意查收结果消息");
}
@Override
public void improveInformation(int age) {
// TODO 自动生成的方法存根
}
}
public interface AbstractMatchMaking {
public void viewInformation();
public void postAnnouncement();
public void improveInformation(int age);
}
import java.util.Scanner;
public class Client {
public static void main(String[] args) {
// TODO 自动生成的方法存根
AbstractMatchMaking amm=new MatchMakingProxy();
System.out.println("*******欢迎来到婚介所*******");
System.out.println("您可以简单浏览一下我们的嘉宾信息....");
amm.viewInformation();
System.out.println("*******请登记一下您的基本信息*******");
System.out.println("您的年龄:");
Scanner in =new Scanner(System.in);
int age=in.nextInt();
amm.improveInformation(age);
if(age>=18) {
amm.postAnnouncement();
}
}
}
3. 注意编程规范。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)