1

私は、古いバージョンの API との下位互換性を維持したい小さなライブラリを作成していますが、可能な場合は最新の API の機能を使用します。

たとえば、外部 API を使用するプロジェクトがあり、これを FooFoo_v1 と呼びます。

最初、私のコードは次のようになりました。

// in Widget.scala
val f = new Foo
f.bar

その後、Foo は API の新しいバージョンである FooFoo_v2 をリリースし、batメソッドを追加しました。新しいバージョンに対してコンパイルしている限り、これは正常に機能します。

// in Widget.scala
val f = new Foo
f.bar
f.bat

しかし、FooFoo_v1 に対してビルドしようとすると、ビルドは明らかに失敗します。このbat機能は完全にオプションであるため、人々が FooFoo_v1 または FooFoo_v2 に対して私のコードをビルドできるようにしたいと考えています。

依存関係管理の詳細を無視して、このようなものに対する適切な高レベルのアプローチは何ですか? 私の目標は、できるだけシンプルに保つことです。

4

2 に答える 2

1

ライブラリを 2 つの部分に分割する必要があると思います。それを達成する方法はコードによって異なります...難しすぎる場合は、@ rex-kerrのアドバイスに従うことをお勧めします-2つのブランチを維持します。

于 2013-07-08T19:22:30.810 に答える