2024.11.13

设计模式实验十四

软件设计                  石家庄铁道大学信息学院

 

实验14:代理模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解代理模式的动机,掌握该模式的结构;

2、能够利用代理模式解决实际问题。

 
   

 

 

[实验任务一]:婚介所

婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪小于18周岁,婚介所会提示“对不起,不能早恋!”,并终止业务。

实验要求:

1.     提交类图;

 

 

2.     提交源代码;

// AbstractMatchMaking.java

public abstract class AbstractMatchMaking {

    public abstract void viewInformation();

    public abstract void postAnnouncement();

    public abstract void improveInformation(int age);

}

 

// MatchMaking.java

public class MatchMaking extends AbstractMatchMaking {

    @Override

    public void viewInformation() {

        System.out.println("Viewing information.");

    }

 

    @Override

    public void postAnnouncement() {

        System.out.println("Posting announcement.");

    }

 

    @Override

    public void improveInformation(int age) {

        System.out.println("Improving information for age: " + age);

    }

}

 

// MatchMakingProxy.java

public class MatchMakingProxy extends AbstractMatchMaking {

    private MatchMaking client = new MatchMaking();

    private int age;

 

    public MatchMakingProxy(int age) {

        this.age = age;

    }

 

    @Override

    public void viewInformation() {

        client.viewInformation();

    }

 

    @Override

    public void postAnnouncement() {

        client.postAnnouncement();

    }

 

    @Override

    public void improveInformation(int age) {

        if (age < 18) {

            System.out.println("对不起,不能早恋!");

        } else {

            client.improveInformation(age);

        }

    }

}

 

// Client.java

public class Client {

    public static void main(String[] args) {

        MatchMakingProxy proxy1 = new MatchMakingProxy(16);

        proxy1.viewInformation();

        proxy1.postAnnouncement();

        proxy1.improveInformation(16);

 

        MatchMakingProxy proxy2 = new MatchMakingProxy(20);

        proxy2.viewInformation();

        proxy2.postAnnouncement();

        proxy2.improveInformation(20);

    }

}

3. 注意编程规范。

 

 

posted @ 2024-12-25 10:04  cvjj  阅读(22)  评论(0)    收藏  举报