2

同僚とメソッドについて話し合っていたところですが、使用法は次のようになります。

String myString = getString(fields[10], true);

ここで私の質問です、trueは何をしますか?

明白な答えは、メソッド定義を見て、そのブール値で何をするかを確認することですが、なぜそれを行う必要があるのでしょうか? メソッド呼び出しでブール値の目的を説明するより良いコーディング スタイルはありますか?

最初は特定の文字列を受け入れるようにメソッドを変更することを考えましたが、それはあまりにも緩すぎます。

私が思いつく最良のアイデアは、次のようにローカルブール値を作成することです。

boolean thisShouldBeUpperCased = true;

String myString = getString(fields[10], thisShouldBeUpperCased);

誰かがこれに遭遇したことがありますか、より良い方法はありますか?

4

1 に答える 1

0

通常、C ライクな言語では、読みやすさを向上させるために const または enum を使用することがあります。

const bool kConvertToUpperCase = true;
const bool kDoNotConvertToUpperCase = false;

また

enum {
    kDoNotConvertToUpperCase,
    kConvertToUpperCase
};

上記のメソッドは拡張性も考慮しています。たとえば、最初に設計で特定のパラメーターに対して 2 つの可能なオプションが呼び出され、その後ブール値として実装される可能性がありますが、後でこれが int または enum を必要とする 3 つ (またはそれ以上) のオプションになります。その後、フォームの明示的true/falseリテラル​​をどこでも同等の値に切り替える必要はありません。

例えば

const int kConvertToLowerCase = 2;
const int kConvertToUpperCase = 1;
const int kDoNotConvertToUpperCase = 0;

また

enum {
    kDoNotConvertToUpperCase,
    kConvertToUpperCase,
    kConvertToLowerCase
};
于 2012-11-07T09:57:29.493 に答える