1、上述代码也用到了工厂模式。定义了一个抽象工厂接口Factory
,AdminFactory
和NormalFactory
实现了这接口,可以创建多个对象。
2、定义了一个用户类(父类),里面有抽象方法menu()
和构造方法。
3、AdminUser
和NormalUser
都继承了抽象类User
,重写了menu()
方法,并且实现了属于自己的方法。
4、定义了一个代理类,里面定义成员属性private User proxyuser;
(用User做类型是为了可以发生向下转型)。定义一个构造方法,传入需要代理的对象。此时,代理类的成员属性指向这个对象。
5、调用proxymenu()
方法,来调用对象自己的menu()
方法。
6、在addBook()
方法中,检查类型是否匹配,只有AdminUser
才能调用此方法,使用instanceof
关键字进行判断。
7、代理类作用:一是作为被代理 User
对象方法调用的中转站,如 proxymenu
方法;二是在特定方法(如 addBook
方法)调用前进行权限检查,实现对被代理对象功能的控制和扩展,增强了系统的安全性和访问控制能力 。
相关文章
- JAVA学习*简单的代理模式-代码解释:
- 2.1多线程(java学习笔记) java中多线程的实现(附静态代理模式)
- java动态代理实现与原理详细分析(代码层面解释了AOP的实现)
- Java设计模式编程之解释器模式的简单讲解
- java学习中,static 修饰符使用、static方法、静态代码块、主函数为何如此写、单例设计模式(java 学习中的小记录)
- java学习之利用TCP实现的简单聊天示例代码
- 通过代码快速理解Java的三种代理模式
- Java基于解释器模式实现定义一种简单的语言功能示例
- 大话设计模式1 简单工厂模式 的java代码实现
- java学习中,static 修饰符使用、static方法、静态代码块、主函数为何如此写、单例设计模式(java 学习中的小记录)