2012-04-19 8 views
0

私はグローバルを1つに減らしました。 1つの変数とゲッター関数だけを持つクラスを挿入するのはちょっと変わったようですが、私は暗黙の依存関係は望まないので、それらをすべて明示して文書化します。また、私は、アクセス権を与えるクラスにアクセスできる「グローバル」だけを望んでいます。そういう意味では、彼らはグローバルではありません。共有の名前を変更する必要があります。 LOAD_ONは私が複数のクラスで必要とする唯一の変数です。1つの「グローバル」変数 - 正しく実装されていますか?

SOLID/DRY(自分自身を繰り返さない)/ OOP(オブジェクト指向プログラミング)を遵守しようとすると、「グローバル」変数を実装するのが正しい方法です(ベストプラクティス)。

<?php 

class GlobalClass 
{ 
    private $LOAD_ON = 0; 
    public function getLoad() 
    { 
     return $this->LOAD_ON; 
    } 
} 
+0

あなたは$ GLOBALSを使用して回避するために、レジストリのデザインパターンのようなものを使用します。この方法でそれを使用しますか? – Hajo

+0

これは正しい方向にあると答えています - > http://stackoverflow.com/questions/1151341/registry-design-pattern-good-or-bad –

答えて

1

「グローバル」が1つしかなく、変更する必要がない場合は、定数がベストプラクティスです。

define('LOAD_ON', 0); 

if(LOAD_ON === 0){ 
///... 
+0

はい、あなたのクラスもそうです。私は$ gc = new GlobalClass()を使うことができます。 – LHolleman

+0

レジストリパターンはカプセル化を提供するので...今は新しいShared(); ... Sharedがこのパターンを実装しています.... 0グローバル...オーバーエンジニアリングのように見えますが...一貫性のために私は行っていますそれを使用する。 –

関連する問題