【发布时间】:2012-07-24 17:12:31
【问题描述】:
我正在寻找一种将一些方法添加到现有类中的方法,如下所示:
String s = "";
s.doSomething();
在目标 C 中,我可以使用 category 来执行此操作。
@interface NSString( Stuff)
-(void)doSomething();
@end
android有类似的东西吗?还是其他黑客?
更新:实际上,我遇到了这个问题:我使用 jar 文件中的一个类(不是最终类)(因此,我无法触及它的源代码)。然后我想在不使用继承的情况下将方法(或类似的东西)添加到这个类中。例如:
public class Provider{
// many methods and fields go here...
public String getName(){}
}
我想做的就是:
provider.print(); //that call getName() method;
我也试过proxy pattern,它有效,但我不喜欢这种方式(因为它就像一个包装类,我必须存储一个包含许多字段和方法的对象才能使用只有一个方法):
public class ProxyProvider{
Provider provider;
public ProxyProvider(Provider provider){
this.provider = provider;
}
public void print(){
String name = provider.getName();
//do something
}
}
有什么办法可以解决吗?
【问题讨论】:
-
“因为它像一个包装类,我必须存储一个具有许多字段和方法的对象才能只使用一种方法” => 不是真的,它只是存储一个引用到对象,所以从内存的角度来看,它不应该有显着的影响。
标签: java android design-patterns