3

継承よりも合成を頻繁に優先する必要があることがわかりました。その結果、生成する必要があるコード行の多くは、private final Contract implementationContractインターフェイス メソッドの間のマッピングで構成されています。

(予測可能な) マッピングの例

public abstract class Sloth<T> extends BaseAnimal implements Valuator<T> {

    private final Valuator<T> valuator = new GenericValuator<T>();

    @Override
    public void setValue(T value) {
        valuator.setValue(value);
    }

    @Override
    public void clearValue() {
        valuator.clearValue();
    }

    @Override
    public T getDefault() {
        return valuator.getDefault();
    }

    @Override
    public T getValue() {
        return valuator.getValue();
    }

    @Override
    public void addStorageBidListeners(OnStorageBid<T>... onStorageBid) {
        valuator.addStorageBidListeners(onStorageBid);
    }

}

このマッピングを自動生成する方法はありますか:

  • 原則として、インターフェースと実装を提供するだけで十分でしょうか?
  • 現時点では、すべてのvaluator.マッピングを手動で書き出していますが、そのような自動リファクタリングへのショートカットがあることを願っていますか?
4

1 に答える 1