最近の読書では、カプセル化の方法と OOP のベスト プラクティスに関する推奨事項が矛盾していることに気付きました。
複数のソース システムから最終的な宛先にデータを転送および変換するために使用される一連の PHP クラスの開発を開始しています。したがって、最初のクラスのプロパティには、ソース URL と認証値が含まれます。
拡張の可能性が無限にある長期プロジェクトに最適なのは、次のうちどれですか?
パブリック プロパティとして宣言します。クラスを構築するときに、各ソースに外部から値を設定します。長所: シンプル。短所: カプセル化の利点がない
__get と __set を使用します。ソースごとに外部から値を設定します。長所: OOP 規則に従います。短所: すべてを外部アクセスに開放します。繰り返しますが、カプセル化はありません
プロパティを保護されていると宣言します。作業が必要なソース システムごとに、元のクラスを拡張し、サブクラスのプロパティを設定します。Pro:カプセル化による OOP。短所: 管理するクラスが増え、場合によってはファイルが増えます。
ファイルのオーバーヘッドはあるものの、現時点ではオプション 3 が最適なようです。私は他のアイデアにもオープンです。
この質問について私が読んだ参考文献:
http://www.php.net/manual/en/language.oop5.overloading.php