オブジェクト コンストラクターで任意の種類の関数を推論するのは良い習慣ですか? たとえば、既存のオブジェクトか新しいオブジェクトか?
使用されるコンストラクターに応じて、DB からプルされるか、ゼロから作成されるクラスがあります。私はC#を使用していますが、それは質問にとって重要ではありません.
オブジェクト コンストラクターで任意の種類の関数を推論するのは良い習慣ですか? たとえば、既存のオブジェクトか新しいオブジェクトか?
使用されるコンストラクターに応じて、DB からプルされるか、ゼロから作成されるクラスがあります。私はC#を使用していますが、それは質問にとって重要ではありません.
インスタンスを作成するために使用されるクライアントのクラスにカスタムロジックを配置するか、複雑なロジックのコンストラクターの代わりにファクトリメソッドを使用することをお勧めしますhttp://sourcemaking.com/design_patterns/factory_method。
もちろん、仮想メソッドを呼び出すと、未定義の動作が発生します-基本コンストラクターが派生コンストラクターの前に呼び出されるため、それを行うべきではありません.
残りは依存します。コンストラクターから呼び出されたメソッドは、副作用を引き起こす可能性があります。たとえば、コンストラクターでイベントをサブスクライブし、コンストラクターが終了する前にハンドラーが呼び出された場合。コンストラクターは、ほとんどの場合、クラス メンバーの初期値を設定するためにインデントされます。
内部の初期化メソッドを呼び出すことは問題ないはずですが、一般的には避けることをお勧めします。
複雑な初期化ロジックがある場合は、おそらく「ビルダー」パターンを確認する必要があります。