11.26
婚介所
婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示“对不起,不能早恋!”,并终止业务。
实验要求:
-
提交类图;
-
提交源代码;
package proxy;
// 抽象婚介所接口
interface AbstractMatchmaking {
void findPartner();
void viewProfile();
void setAge(int age);
}
// 真实婚介所类
class RealMatchmaking implements AbstractMatchmaking {
@Override
public void findPartner() {
System.out.println("为您寻找合适的伴侣...");
}
@Override
public void viewProfile() {
System.out.println("查看其他用户的资料...");
}
@Override
public void setAge(int age) {
System.out.println("设置年龄为: " + age);
}
}
// 婚介所代理类
class MatchmakingProxy implements AbstractMatchmaking {
private RealMatchmaking matchmaking;
private int age = 0;
public MatchmakingProxy() {
this.matchmaking = new RealMatchmaking();
}
@Override
public void findPartner() {
if (checkAge()) {
matchmaking.findPartner();
}
}
@Override
public void viewProfile() {
if (checkAge()) {
matchmaking.viewProfile();
}
}
@Override
public void setAge(int age) {
this.age = age;
matchmaking.setAge(age);
}
private boolean checkAge() {
if (age < 18) {
System.out.println("对不起,不能早恋!");
return false;
}
return true;
}
}
// 客户端测试类
public class MarriageAgencyTest {
public static void main(String[] args) {
// 创建代理对象
AbstractMatchmaking matchmaking = new MatchmakingProxy();
// 测试未成年case
System.out.println("=== 测试未成年用户 ===");
matchmaking.setAge(16);
matchmaking.findPartner();
matchmaking.viewProfile();
// 测试成年case
System.out.println("\n=== 测试成年用户 ===");
matchmaking.setAge(20);
matchmaking.findPartner();
matchmaking.viewProfile();
}
}
- 注意编程规范。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步