Javaクラスバージョン固有の命名規則


10

2つのソフトウェア(機械シミュレーション、非cs)の間にアダプターを作成する必要があります。という名前のクラスがあるとしThatThingます。さまざまなベンダー固有の実装を処理する必要があります。これらのバージョンには意味のある名前がありません(日食ヘリオ、インディゴなどとは異なります)。

1.バージョン番号を表すクラスに名前を付けるにはどうすればよいですか?

私のようなクラスを見つけThatThing_3_6_ImplThatThing_3_7_Implかなりぎこちないです。

回答:


20

別のパッケージ名を使用してください。

com.example.version36.ThatThing
com.example.version37.ThatThing

これにより、特定のバージョンのすべての「もの」をまとめて保持できます。

Apache Commons Langは、「バージョン3」の書き換えをリリースするときにこのフォーマットを使用しました。


1つのクラスで両方のバージョンを参照できるようにする必要があるため、名前を次のように短縮します。

ThatThing36
ThatThing37

あなたの場合、これは十分に説明的であるように思われ、醜いImpl_の削除されます。


これはいいですね。考えておく。これらのバージョンが一緒になる場所ではありますが、参照には完全修飾名を使用する必要がありますよね?
user802421

彼らはどうやって一緒になるのですか?依存性注入を使用していますか?いずれにせよ、あなたの質問に答えるために、はい。
Jeremy Heiler、2011

リリースごとに異なるデータモデルの多くのバージョンがあります。機能の特定のサブセットが混在しています。ライブラリはまったくサポートされていません(例:di、codegenなし)。これは11年のソフトウェアの進化の歴史である。:(
user802421

悲しい。version37.ThatThing伸ばすversion36.ThatThingことで痛みを和らげることは可能ですか?
Jeremy Heiler、2011

残念ながら、それらは構造的に異なり、複雑な変換が必要です。ビットマップやベクターグラフィックのようなものです。
user802421

2

それは大した問題ではありません。表現に固執するために必要なすべてを表現する規則を選択してください。

ThatThing3_6「That Thing 3.6」に使えます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.