每日总结11.16

代理模式
1、理解代理模式的动机,掌握该模式的结构;
2、能够利用代理模式解决实际问题。

实验任务:婚介所
婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,

其中如果年纪小于18周岁,婚介所会提示“对不起,不能早恋!”,并终止业务。

类图:

 源代码:

Client类:

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

  

AbstractMatchMaking类:

public interface AbstractMatchMaking {

public void viewInformation();
public void postAnnouncement();
public void improveInformation(int age);
}

  

MatchMaking类:

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 自动生成的方法存根

}

}

  

MatchMakingProxy类:

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("信息登记完成......");
}
}

}

  

 

posted @ 2023-11-16 20:35  Espen  阅读(11)  评论(0)    收藏  举报