ノードを持つGraphオブジェクトがあります。 各ノードの任意のプロパティを保持するアノテーションオブジェクトを用意する必要があります。一般に、1つのノードがT型のプロパティを持つ場合、他のすべてのノードはその型のプロパティを持ちます。 Annotatorオブジェクトは、アノテーションにプロパティを追加します。これは私のグラフにとらわれないままです。 ノードに特定の種類のプロパティを追加するコード、種類別にプロパティを取得するコードがあります。ここでJavaグラフの注釈プロパティーパターン
私は現在、私の注釈クラスを持っているコードです:
private Map<Class<? extends Property>, Map<Node, Property>> properties;
@SuppressWarnings("unchecked")
public <T extends Property> T getProperty(Node node, Class<T> clazz) {
if (properties.containsKey(clazz)) {
return null;
}
return (T) properties.get(clazz).get(node);
}
public void addProperty(Node node, Property property) {
if (!properties.containsKey(property.getClass())) {
properties.put(property.getClass(), new HashMap<>());
}
properties.get(property.getClass()).put(node, property);
}
私は、これが正常に動作信じて、しかし、ジェネリック医薬品は、彼らはおそらくかもしれないほど厳格ないないようです。 もっとエレガントなパターンがありますか?
ありがとうございました!
おかげで、病気それらの改善を行います! –