【发布时间】:2019-07-15 05:59:57
【问题描述】:
我想知道这段代码的模式是什么。
我正在分析一个名为 web3j 的库。
这里是这个来源的代码:
public interface FilterTopic<T>
{
@JsonValue
T getValue();
}
public static class SingleTopic implements FilterTopic<String>
{
private String topic;
public SingleTopic()
{
this.topic = null;
}
public SingleTopic(String topic)
{
this.topic = topic;
}
@Override
public String getValue() {
// TODO Auto-generated method stub
return topic;
}
}
public static class ListTopic implements FilterTopic<List<SingleTopic>>
{
private List<SingleTopic> topics;
public ListTopic(String… optionalTopics)
{
topics = new ArrayList<>();
for(String topic : optionalTopics)
{
if(topic != null) topics.add(new SingleTopic(topic));
else topics.add(new SingleTopic());
}
}
@Override
public List<SingleTopic> getValue() {
// TODO Auto-generated method stub
return topics;
}
}
可以看到FilterTopic界面。它有几个使用静态类的返回值。这是什么图案?
如果你想看完整的代码,看这里 https://github.com/KoangHoYeom/Ethereum-JSONRPC-With-Java-Ex/blob/master/src/main/java/org/BlockChainService/domain/dto/Filter.java
感谢您的阅读!
【问题讨论】:
标签: java oop generics design-patterns