java 动态代理为什么必需要实现一个接口?


JDK动态代理为什么必须针对接口?

代理 java jdk

中国人名很行 9 years, 7 months ago

代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

接口是一种规范,定义了一组相似的行为。

通俗一些就是,当你调用代理类的方法时与你调用被代理类的方法时在写法上是没有任何区别的,只有接口才能保证这种一致性。

伪宅的Y生 answered 9 years, 7 months ago

动态代理是通过反射来实现的,而且接口不依赖实现,才能体现动态代理的优点啊。如果是一个实体类怎么能是动态代理呢?可以查查什么是动态代理?
当然还可以用组合模式,来实现类似动态代理的功能。

Penny answered 9 years, 7 months ago

Your Answer