I'm currently working on a code base that has many classes that implement a Start method. This seems like two-phase construction to me, which I had always considered a bad practice. I can't tell the difference between this and a constructor.
When is it appropriate to use a start method instead of normal object construction?
When should I prefer to use the constructor?
Edit: I don't think it is that relevant but the programming language is C#, it could equally apply to Java or C++