【发布时间】:2013-02-28 16:08:34
【问题描述】:
我有多个使用多个 Collection 参数的方法。
我想让事情更具体,所以我想使用转发装饰器
首先想到的问题是:
- 使用 Forwarding Decoartor 是不是有点过头了,我是不是缺少了一个 更简单的东西,我的意思是这非常简单,感谢 Guava 但还是?
如果转发装饰器是正确的路径,那么
到目前为止看起来还不错,但我不确定的一件事是如何取回基本集合(在这种情况下为 ImmutableSet)?
- 我是否只是创建一个返回的新方法(在接口和类中) “代表” ? (如果是这样,什么是好的方法名称?)
- 还是有更多?
在以下代码中,我将 ImmutableSet 保存为 setA。
代码:
界面:
package com.ps.experiment.forwarding;
import java.util.Collection;
public interface ISetA extends Set<String>{}
类:
package com.ps.experiment.forwarding;
import com.google.common.collect.ForwardingSet;
import com.google.common.collect.ImmutableSet;
public class SetA extends ForwardingSet<String> implements ISetA
{
final ImmutableSet<String> delegate; // backing list
@Override
protected ImmutableSet<String> delegate()
{
return this.delegate;
}
private SetA(final ImmutableSet<String> strings)
{
this.delegate = strings;
}
public static ISetA of(final ImmutableSet<String> strings)
{
return new SetA(strings);
}
}
【问题讨论】:
标签: java collections guava