11.11日报

今天完成了设计模式的实验十四,以下为实验内容:

实验14:代理模式

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

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

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

 
   

 

 

[实验任务一]:婚介所

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

实验要求:

1.     提交类图;

 

2.     提交源代码;

  1. // 人接口
    interface Person {
        void findPartner();
    }

    // 具体的人(成年人)
    class Adult implements Person {
        private String name;

        public Adult(String name) {
            this.name = name;
        }

        @Override
        public void findPartner() {
            System.out.println(name + " is looking for a partner.");
        }
    }

    // 具体的人(未成年人)
    class Minor implements Person {
        private String name;

        public Minor(String name) {
            this.name = name;
        }

        @Override
        public void findPartner() {
            System.out.println("Sorry, " + name + ", you can't date early!");
        }
    }

    // 婚介所(实际对象)
    class Matchmaker {
        public void findPartner(Person person) {
            person.findPartner();
        }
    }

    // 代理婚介所
    class ProxyMatchmaker {
        private Matchmaker matchmaker = new Matchmaker();

        public void findPartner(Person person) {
            if (person instanceof Minor) {
                System.out.println("Sorry, can't date early!");
            } else {
                matchmaker.findPartner(person);
            }
        }
    }

    // 客户端代码
    public class Client {
        public static void main(String[] args) {
            Person adult = new Adult("Alice");
            Person minor = new Minor("Bob");

            ProxyMatchmaker proxyMatchmaker = new ProxyMatchmaker();
            proxyMatchmaker.findPartner(adult); // Alice is looking for a partner.
           
    proxyMatchmaker.findPartner(minor); // Sorry, can't date early!
       
    }
    }

 

3. 注意编程规范。

 

 

posted @ 2024-11-27 10:39  Code13  阅读(16)  评论(0)    收藏  举报