(プロキシ設定を除く!)
基本クラスでの初期化は、そうではない継承クラスからのデータに依存していたため、ほとんどすべてのプロパティゲッターで条件付き初期化を実行するクラスの問題のより良いパターンに関する質問をここに書くのに時間を費やしました建設で入手可能。
質問を書いているときに、継承者の構築を初期化する方が良いという結論に達しました。これには、すべての継承クラスが親の初期化メソッドを呼び出す必要がありますが、次の理由から、そのほうがよいと思います。
- すべての新しいプロパティ getter/setter の基本クラスで初期化することを覚えておく必要はありません。
- デバッグ中に誤って初期化をトリガーすることはありません (ここで私の質問を参照してください)
プロパティ ゲッターで状態を変更するコードを使用したことがある場合、それは絶対に正当化できると思いますか? そのような場合の例を挙げていただけますか?(または、パターンを説明することさえできますか?)
プロパティアクセスまで初期化を実行したくないプロキシアクセスしか考えられませんでした...
ファクトリ/静的メソッドを使用して初期化することを誰かが提案しました-それは実際には良い考えです(構造が単純な場合、継承するクラス間で均一でない場合は少し難しいです)が、返信を送信する前に回答が削除されました. 残念な。