2016-11-17 12 views
1

私はejbプロジェクトに取り組んでいます。自分のプロジェクト全体で使用できる定数セットを定義する必要があります。そのため、私の定数セットを保持するインターフェースを作成しています。 Webプロジェクトで定数を定義しますか?Webプロジェクトで定数のセットを定義する最も良い方法は何ですか?

この私の一定のインタフェースのexemple:

public interface ejbConstant { 
    final String CONST23= "AB23"; 
    final String CONST24= "AB24"; 
    // .......... 
} 

はジョシュア・ブロック、 "効果的なJavaの" の著者によると、あなたの提案

+1

コンテキストに応じて、「enum」やプロパティなどを使用できます。 – Mena

答えて

2

Sonar持ってかなり良いexplanation of this with examples

いただきありがとうございます:

定数インターフェイスパターンが不良ですインタフェースの使用。

クラスがいくつかの定数を内部的に使用するのは実装 です。定数インターフェイスを実装すると、この実装は の詳細をクラスのエクスポートされたAPIにリークさせます。そのクラスが定数 インタフェースを実装しているクラスのユーザには、結果的には ではありません。実際、それはそれらを混乱させるかもしれません。さらに悪いことに、 というコミットメントを表しています。将来のリリースでは、 には定数を使用する必要がなくなるようにクラスが変更されていますが、バイナリ互換性を確保するためには インターフェイスを実装する必要があります。非finalクラス が定数インターフェイスを実装する場合、そのサブクラスはすべて、インターフェイス内の定数によって汚染された 名前空間を持ちます。

関連する問題