Вместо использования интерфейса, подобного этому:
public interface IStartable
{
void Start();
void Stop();
}
Обычно я просто заставляю конструктор объекта выполнять код Start () и реализовывать IDisposable, чтобы метод dispose выполнял код Stop ().
Это просто вопрос стиля? Или я что-то упускаю из-за отсутствия чего-то вроде IStartable? Все, что я вижу, - это дополнительная сложность, потому что вы должны поддерживать состояние запуска / остановки.
Каковы плюсы и минусы использования start / stop и ctor / dispose, особенно в контексте контейнера IoC / DI?
РЕДАКТИРОВАТЬ: отличные ответы, вы убедили меня использовать интерфейс для запускаемых объектов. Я не могу решить, кто ответит лучше всех, поэтому я приму того, кто наберет наибольшее количество голосов через 24 часа.