人気の範囲および封止
-
05-07-2019 - |
質問
していま汎用い範囲および封止.という二つのシナリオ:
シナリオ1:
// a global application level constant
public static const IS_DEMO_MODE:Boolean = false;
... // somewhere deep in the codebase
private function _myFunction():void
{
if (IS_DEMO_MODE == true) {
// If Demo Mode do not allow this function to complete
return;
}
else {
// Function behaves normally
// Code ...
}
}
シナリオ2:
// a global application level constant
public static const IS_DEMO_MODE:Boolean = false;
... // somewhere deep in the codebase
// call the function and pass in the constant
_myFunction(IS_DEMO_MODE);
private function _myFunction(isDemoMode:Boolean):void
{
if (isDemoMode == true) {
// If Demo Mode do not allow this function to complete
return;
}
else {
// Function behaves normally
// Code ...
}
}
機能的に言えばこの二つのコードスニペットを同じものです。って理解することができなくなり、ここでコーディングスタイルに、なぜこよりも優先しますか?このシナリオ2は良いから、封止する。でのシナリオ1はfoolproofのbooleanとの条件が一つの場所だけに、グローバル定数です。んなの心配の呼び出しが正常に受信パラメータがパスを間違った値です。がシナリオ2のように値すので削除の依存関係の定数をとることもできる機能の動作ります。意思想す。その他の貿易の償却に渡っていただいてか
同じコンセプトや質問を用オブジェクしています。がんの現在の例ではの機能を簡単のためのコード例です。
解決
のアプローチできる _myFunction
ライブを別々のモジュールのない依存関係のグローバルでや試験、わかりやすく、再利用し、お手伝いさせていただきます管理のご依存関係のグラフは、多くが深刻な問題となっており大codebases.た場合の挿入に依存できないように、ひとつひとつを手作りの依存関係のグラフ問題の悪化は非常に少ない潜在的な利益がある支払います。
実際、このような利点は、依存関係のパターンを明示的に注入オブジェクトがその作成(一般的に望ましくない、望ましくない)の間の依存関係のモジュールを参照してください こちらの ために開始されます。として大好きで、ゆったりカップリング、および再利用、私はかつて替えの依存性注射もない夢のアクセスするグローバル定数が渡す引数としてということは、明白な代替...;-).
他のヒント
2が優先したい場合は、同じ作成ユニット連結させることによって設立されたバージョン(特にとして、共有ライブラリは、世界的に固定、または複数のインスタンスと同じです。その他のいい状態で再構築すべらない障害#1であります。
もっている。グローバル定数は危険です。