从实现功能的角度来说,用组合或继承也是可以实现一个简单的代理的,所以为什么要强调要实现共同的接口呢?
如下:
public class Subject {
public void f(){
System.out.println("被代理对象的业务方法");
}
}
public class ProxyItem {
public void ff(){
System.out.println("代理对象替被代理对象办事前");
Subject sub = new Subject();
sub.f();
System.out.println("代理对象替被代理对象办事后");
}
}
public class Test {
public static void main(String[] args) {
ProxyItem pi = new ProxyItem();
pi.ff();
}
}
请大佬指点指点。
你写错了,你的代码不是 静态代理。
你的代码,既没有继承,也没有组合。
去翻翻书吧。看看什么是 面向接口编程。
我没有用继承,组合把new的语句放到外面就是,我的疑问是,为什么非得要实现接口?
@lukely:
假设你写100个不同功能的代理,使用 接口方便呢,还是 复制 100遍被代理对象 需要被代理的方法?
有接口,IDE可以一键生成接口的方法,,而类不行。
假设几口有100个方法,那么……
@快乐的凡人721: 你说得对,刚才就我这段代码,被问了一个问题,“难道调用别的方法就是代理了吗?”被问楞了,看来我的从新理解一下代理在编程领域的的代理究竟是什么概念。太多博客总用中介租房这种生活例子来比喻了,虽然生动形象,但是移植到编程领域,还是有些区别。
@lukely:
看书吧,《疯狂Java讲义》、《Java编程的逻辑》,都挺不错的(厚)