软件设计模式————(代理模式)
[实验任务一]:婚介所
婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示“对不起,不能早恋!”,并终止业务。
实验要求:
1. 提交类图;

2. 提交源代码;
复制代码
1 package tutorial14;
2
3 import java.util.Scanner;
4
5 public class Client {
6
7 public static void main(String[] args) {
8 // TODO 自动生成的方法存根
9
10 AbstractMatchMaking amm=new MatchMakingProxy();
11 System.out.println("*******欢迎来到婚介所*******");
12 System.out.println("您可以简单浏览一下我们的嘉宾信息....");
13 amm.viewInformation();
14 System.out.println("*******请登记一下您的基本信息*******");
15 System.out.println("您的年龄:");
16 Scanner in =new Scanner(System.in);
17 int age=in.nextInt();
18 amm.improveInformation(age);
19 if(age>=18) {
20 amm.postAnnouncement();
21 }
22
23 }
24
25 }
复制代码
复制代码
1 package tutorial14;
2
3 public interface AbstractMatchMaking {
4
5 public void viewInformation();
6 public void postAnnouncement();
7 public void improveInformation(int age);
8 }
复制代码
复制代码
1 package tutorial14;
2
3 public class MatchMaking implements AbstractMatchMaking{
4
5 @Override
6 public void viewInformation() {
7 // TODO 自动生成的方法存根
8 System.out.println("您正在浏览查看婚介对象基本信息");
9 }
10
11 @Override
12 public void postAnnouncement() {
13 // TODO 自动生成的方法存根
14 System.out.println("您发布了一条征婚启事,请注意查收结果消息");
15 }
16
17 @Override
18 public void improveInformation(int age) {
19 // TODO 自动生成的方法存根
20
21 }
22
23 }
复制代码
复制代码
1 package tutorial14;
2
3 public class MatchMakingProxy implements AbstractMatchMaking{
4
5 private MatchMaking client=new MatchMaking();
6 private int age=18;
7 @Override
8 public void viewInformation() {
9 // TODO 自动生成的方法存根
10 System.out.println("您正在浏览查看婚介对象基本信息");
11
12 }
13
14 @Override
15 public void postAnnouncement() {
16 // TODO 自动生成的方法存根
17 if(age>=18) {
18 System.out.println("发布征婚启事");
19 }else if(age<18) {
20 System.out.println("对不起,不能早恋!");
21 }
22 }
23
24 @Override
25 public void improveInformation(int age) {
26 // TODO 自动生成的方法存根
27
28 this.age=age;
29 if(age<18) {
30 System.out.println("对不起,不能早恋!");
31 }else if(age>=18) {
32 System.out.println("信息登记完成......");
33 }
34 }
35
36 }
复制代码

浙公网安备 33010602011771号