2011-07-07 87 views
8

在Eclipse中是否有方法生成代理類(如代理模式,而不是遠程調用)?沿着這在Eclipse中生成java代理類

public class FooBar{ 
    public int getBiz(){ 
     return 1234; 
    } 
} 

東西線產生

public class FooBarProxy{ 
    protected FooBar foobar; 
    public FooBarProxy(FooBar f) {...} 
    public int getBiz(){ 
     return foobar.getBiz() 
    } 
} 

回答

14

自己創建代理類,並添加FooBar實例變量。選擇變量,右鍵單擊 - >源代碼 - >生成委託方法

+0

這在創建裝飾器時非常有用改變特定方法的行爲。 – fiffy

2

爲什麼不使用內置的動態代理Java的。它在運行時生成一個代理:

  1. 通過實施java.lang.reflect.InvocationHandler
  2. 創建一個動態代理實現代理邏輯;請參閱http://download.oracle.com/javase/6/docs/api/java/lang/reflect/Proxy.html(包含示例)
+0

這很有趣,但似乎不同的用例 - 主要用於攔截/反射魔術..對於Java中的計劃舊代理模式,它比打字更麻煩(也用於調試),恕我直言。順便說一句,類似的結構看起來更容易接受其他語言(例如Ruby中的Forwardable http://www.ruby-doc.org/stdlib-2.0/libdoc/forwardable/rdoc/Forwardable.html) – inger