Hola,
Posiblemente ...
Para mantener las características básicas de la programación orientada a objetos, la clase 'Conexión' no debería inicializar por defecto ningún valor. Por abstracción, la clase no debería conocer los detalles externos de la implementación.
De otra forma se vuelve confuso para los programadores que usan o extienden dichas clases, y resultas usando 'siempre' la versión 'con parámetros'. Si no se le pasan los parámetros necesarios debe tirar una excepción.
Así tenemos como ejemplo los frameworks, creo que ningún framework va a inicializar por defecto ningún valor de la conexión (sino posiblemente resultaría conectandome a Zend sin saberlo
). Eso permite que la clase sea lo suficientemente abstracta para que cada uno la inicializemos a nuestro gusto.
Ahora bien ... si quieres crear esa clase para ahorrarte el trabajo de estar escribiendo el nombre de usuario, la contraseña, entonces lo mas aconsejable sería usar una clase nueva que extienda la anterior, que implemente el patrón singleton y que tenga un método Factory para obtener una conexión específica de tu base de datos obtenerConexionLocal(), y en ese caso no acepta parámetros.
Por ejemplo, la programación a objetos debe simular el comportamiento normal de las cosas, si yo digo Casa() me estoy refiriendo a un prototipo de casa pero ninguna en especial. Si digo new Casa("25"), estoy refiriendome a la casa 25.
Si digo Conexion no me estoy refiriendo a ningúna en específico. new Conexion(25) entonces ya sé que es la conexión número 25. Pero no espero que new Conexion() me devuelva la conexión 8 ... ¿Cómo lo voy a saber exactamente, si eso lo oculta la implementación de Conexion?.
Pero esa es solamente mi opinión
,
Saludos,