1 votos

Java: clases sensatas

Tengo una clase Contact, cuyo único propósito en este momento es tener un nombre y una dirección (la cual a su vez se divide en una calle y ciudad). ¿Debería:

A) Tener campos de nombre, calle y ciudad en mi clase Contact, o

B) Tener clases separadas de Name y Address y adjuntarlas a Contact con una relación de composición?

Actualmente puedo ver la opción A como justificable debido a la simplicidad de la situación, pero la opción B también parece justificable, ya que operaciones adicionales podrían agregarse a Name y Address más tarde sin complicar innecesariamente la abstracción de Contact. También parece tener sentido agrupar los datos de calle y ciudad juntos en una abstracción más específica que solo Contact.

El contexto para esto es una pregunta de examen, por lo que el enfoque es crear una pequeña aplicación con clases sensatas.

¿Cuál opción es mejor? Gracias por cualquier consejo.

2voto

xproph Puntos 282

Si Name es un nombre de persona, yo optaría por una clase separada para Persona con nombre, apellido, etc. y luego una clase para contacto con calle, código postal, email, número, teléfono.

Si el nombre es el nombre de un edificio o algo relacionado con los detalles de contacto, yo optaría por una clase Contacto con todos los campos en ella.

1voto

nachokk Puntos 11538

La pregunta es, ¿qué representa un nombre? ¿Tiene comportamiento? ¿no se puede representar solo como un String?

Puedes crear una clase Contacto y una clase Persona, persona es el delegado en la clase Contacto, por ejemplo

class Contacto {

Persona persona;

public String getNombreContacto(){
   return persona.getNombreContacto();
}

}

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X