ソフトウェアアーキテクチャ博物館AtMuseum
失敗パターン解説


インスタンスがいない

説明

ライフタイムのねじれが発生している。処理の途中でインスタンスを生成していると発生しやすい。

 

インスタンスの生成とインスタンスの動作(処理)を分離する。

Factoryなどでインスタンスを明示的に生成し、インスタンス同士の関連も張ってから、

インスタンス間の呼び出し(処理)をするように、生成と処理を分離する。

また、インスタンスを管理するOwnerを決めた方がよい。

Ownerが、生成と消滅に責任を持つ。生成と消滅をシンメトリにすることでメモリリークもなくなる。

 

典型的なライフタイムは、コンフィグ単位とジョブ単位がある。

コンフィグ単位は、ソフトウェアの初期化時点で生成され、終了時点で消滅するライフタイム。

ジョブ単位は、ユーザからの指示やコマンド単位に達成し、処理が終了した時点で消滅するライフタイム。