JAVA学习*简单的代理模式-代码解释:

时间:2025-03-31 10:31:20

1、上述代码也用到了工厂模式。定义了一个抽象工厂接口FactoryAdminFactoryNormalFactory实现了这接口,可以创建多个对象。
2、定义了一个用户类(父类),里面有抽象方法menu()和构造方法。
3、AdminUserNormalUser都继承了抽象类User,重写了menu()方法,并且实现了属于自己的方法。
4、定义了一个代理类,里面定义成员属性private User proxyuser;(用User做类型是为了可以发生向下转型)。定义一个构造方法,传入需要代理的对象。此时,代理类的成员属性指向这个对象。
5、调用proxymenu()方法,来调用对象自己的menu()方法。
6、在addBook()方法中,检查类型是否匹配,只有AdminUser才能调用此方法,使用instanceof关键字进行判断。
7、代理类作用:一是作为被代理 User 对象方法调用的中转站,如 proxymenu 方法;二是在特定方法(如 addBook 方法)调用前进行权限检查,实现对被代理对象功能的控制和扩展,增强了系统的安全性和访问控制能力 。