Javaクラスの名前に一連の数字が含まれるクラス(「ISO 8859-1」など)を作成する場合、クラスにどのように名前を付ければよいですか?
Iso88591
は数字の間に境界がないため、間違っているようです。
Iso8859_1
は私には良いようですが、有効Java=によると、「定数フィールドはアンダースコアの唯一の推奨される使用法を構成します。」(Checkstyleのデフォルトの動作によっても捕捉されます。)
名前を付けることもできますIso8859Dash1
、しかしそれはひどく見えます。
ガイドラインはガイドラインであり、不変の自然法則ではありません。通常のJava命名規則に簡単にマップできない、わかりやすい名前の優れた例を見つけました。それで、どうしますか?
例外を作る。
すべての提案のうち、Iso8859_1
は、クラスが何であるかを明確におよび明確にが表す唯一の名前です。さまざまなコーディングガイドラインは、明確な名前を見つけるためのヒューリスティックです。ここでそれらは失敗し、あなたはそれらを無視するのがうまくいくでしょう。
Checkstyleは構成可能です。そのような名前を許可するように構成を調整するか、名前チェックからのクラス宣言を除いてください。自分自身を無能なツールの奴隷にする代わりに、ツールがあなたを助けてください。
(理由:デフォルトのJavaコーディング規則では、キャメルケースを使用して視覚的に強調するWord境界を識別子内で使用することを推奨しています。定数はall-uppercase。ここでは数字の境界が必要です。ASCII数字には大文字と小文字の区別がないため、ここではキャメルケースを使用できません。名前の数字を区切るための残りのオプションはアンダースコアです。)
混乱や衝突の可能性がない限り、私はこれを気にしないでしょう。たとえば、ISO 885-91規格を表すクラスが存在する可能性がある場合、問題が発生する可能性があります。この場合はダッシュを落とします。