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