2012-01-15 35 views
1

ここ数ヶ月で私は可読性のためにコードを整理していました。私のアプリケーションが大きくなるにつれて、私は変数、クラス、メソッドなどを扱うことが重要です。グローバル変数またはメソッド引数をメソッド変数に渡すベストプラクティス

これは、私は、メソッド引数を渡してグローバル変数を作成するのではなく、メソッド変数。ローカルメソッド変数を作成すると、コードの残りの部分が「オーバーヘッドを隠す」ことで解決されますが、メソッド引数の引き渡しの流れをトレースして理解する必要があります。

最終的に私は、ベストプラクティスは、本質的に、可能な限り低いレベルで変数を初期化することによって、最小限のオーバーヘッドを作成するに降りてくると信じて:

  • 一つだけ変数が複数の方法で必要とされるグローバル変数を使用する必要があります。
  • メソッド引数とメソッド変数を使用する必要があります。この変数は、そのメソッドでのみ必要であり、したがってメソッドに対してローカルです。

これは、グローバル変数とメソッド変数にアプローチする単純な論理的な方法ですか?この考え方についてアドバイスをいただければ幸いです。私のコードが何百ものメソッドに成長し始めると、最も論理的な方法で変数を作成するようにもっと注意を払う必要があります。

ありがとうございました!

答えて

0

グローバル変数を使用することは、私が知っているプログラミング言語の中では、プログラミングの習慣として悪いと考えられています。可能な限り、paramsを使うべきです。まったく、singletonパターンのようなものが必要な場合。

0

グローバルなものを保存したい場合は、アプリケーションクラスを拡張する必要があります。これは、Androidでのセッションのようなものです。このクラスでは、すべてをグローバルに格納できます。

シングルトンを使用しないでください。Androidでは悪い習慣ですが、Applicationクラスを使用してください。

0

これは、いくつかの文で答えるのは簡単な質問ではありません。グローバル変数の使用は悪い習慣です。密接に結合されたコードにつながり、変更や拡張を非常に困難にします。大量のグローバル変数が必要なことは、設計に専念する必要があることを示す指標です。

あなたのコードには、何百ものメソッドがあります。あなたはクラスが幾つありますか? 1つのクラスに何百ものメソッドがある場合、そのクラスはあまりにも多くの責任を持ちます。あなたのデザインは、明確な責任を持つクラスを持つことに焦点を当てるべきです。各クラスには、それらの責任を扱うために必要なデータだけが必要です。これにより、グローバル変数の数が減少します。データが明らかに1つのクラスの責任である場合、それはグローバルではなく、他のクラスからアクセス可能であるべきである。

+0

あなたの答えを理解していますが、グローバル変数はデータベース内のフィールドを表しています。私は、フィールドの名前を変更することがあり、すべてのコードを修正して変更するのが痛いため、フィールドをハードコードする代わりにグローバル変数を使用することを選択しました。 テーブルのフィールド名を保存するための別のルートをお勧めしますか? – AutoM8R

+0

よくフィールド名の定義を作成して、すべてのコードに使用することができます。場合によっては、フィールドの名前を変更する必要がある場合は、その1つの定義を変更するだけです – gekod

関連する問題