Estoy implementando una clase para comparar árboles de directorios (en C#). Al principio implementé la comparación real en el constructor de la clase. De esta manera:¿Se considera un mal diseño realizar operaciones largas en un constructor?
DirectoryComparer c = new DirectoryComparer("C:\\Dir1", "C:\\Dir2");
Pero no se siente "bien" hacer una operación larga posible en el constructor. Una forma alternativa es hacer que el constructor sea privado y agregar un método estático como este:
DirectoryComparer c = DirectoryComparer.Compare("C:\\Dir1", "C:\\Dir2");
¿Qué opinas? ¿Esperas que un constructor sea "rápido"? ¿El segundo ejemplo es mejor o solo está complicando el uso de la clase?
Por cierto:
no voy a marcar cualquier respuesta como aceptada porque no creo que haya una respuesta correcta, sólo preferencia y gusto.
Editar:
sólo para aclarar mi ejemplo un poco. No solo estoy interesado si los directorios difieren, también estoy interesado en cómo difieren (qué archivos). Entonces un valor de retorno int simple no será suficiente. La respuesta de cdragon76.myopenid.com en realidad está bastante cerca de lo que quiero (+1 para ti).
Si no marca una respuesta, ¿quizás debería ser una wiki de la comunidad? –
Acepto [10chars] –