代理模式

实验14:代理模式

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

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

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

 

[实验任务一]:婚介所

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

实验要求:

1. 提交类图;

 

2. 提交源代码;

public interface AbstractPermission {  

    void modifyUser();  

    void lookOthers();  

    void setAge(int age);  

}  

 

public class RealPermission implements AbstractPermission {  

    @Override  

    public void modifyUser() {  

        System.out.println("修改用户信息");  

    }  

 

    @Override  

    public void lookOthers() {  

        System.out.println("查看他人信息");  

    }  

 

    @Override  

    public void setAge(int age) {  

        // 这里不需要实现具体逻辑  

    }  

}  

 

public class PermissionProxy implements AbstractPermission {  

    private RealPermission permission = new RealPermission();  

    private int age = 18;  

 

    @Override  

    public void modifyUser() {  

        if (age < 18) {  

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

        } else {  

            permission.modifyUser();  

        }  

    }  

 

    @Override  

    public void lookOthers() {  

        if (age < 18) {  

            System.out.println("能早恋!");  

        } else {  

            permission.lookOthers();  

        }  

    }  

 

    @Override  

    public void setAge(int age) {  

        this.age = age;  

    }  

}  

 

public class Client {  

    public static void main(String[] args) {  

        

        AbstractPermission permission = new PermissionProxy();  

 

        

        permission.setAge(18);  

        permission.modifyUser();  

        permission.lookOthers();  

        System.out.println("          ");  

 

        permission.setAge(15);  

        permission.modifyUser();  

        permission.lookOthers();  

    }  

} 

 

posted @ 2024-12-30 22:29  chrisrmas、  阅读(6)  评论(0)    收藏  举报