このようなインターフェースを使用する代わりに:
public interface IStartable
{
void Start();
void Stop();
}
私は通常、オブジェクトのコンストラクターに Start() コードを実行させ、IDisposable を実装して、dispose メソッドが Stop() コードを実行するようにします。
スタイルだけの問題ですか?それとも、IStartable のようなものを持っていないことで、何か重要なものを見逃していますか? 開始/停止状態を維持する必要があるため、余分な複雑さが見られます。
特に IoC/DI コンテナーのコンテキストで、開始/停止を使用する場合と ctor/dispose を使用する場合の長所と短所は何ですか?
編集:素晴らしい答えです。開始可能なオブジェクトにインターフェイスを使用するように説得しました。誰の回答がベストかは判断できないので、24 時間後に最も多くの賛成票を獲得した人を受け入れます。