软件设计实验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. 注意编程规范。

 

posted @ 2023-11-17 22:37  STDU_DREAM  阅读(14)  评论(0编辑  收藏  举报