Supongamos que tengo un método¿Qué contrato (Diseño por contrato) es mejor?
public Patient(int id)
{
----
}
que devuelve objeto paciente dado un id .. Me podría definir un contrato de 2 maneras
- método sería devuelto nulo si el paciente no existe
- método sería lanzar una excepción si el paciente no existe. En este caso, también definiría un método de consulta que devuelve verdadero si el paciente existe en la base de datos o es falso ...
¿Qué contrato debo usar? ¿Cualquier otra sugerencia?
Actualización: Por favor, comentar en este caso también ... Si no es una base de datos de identificación asignado y es algo que un usuario introduce en la interfaz de usuario .. como SSN .. entonces cuál es mejor ..
Comentario sobre el patrón nulo de Steve que creo que es válido: probablemente no sea una buena idea aquí, ya que sería realmente útil saber de inmediato cuando no existe una identificación.
Y También pienso patrón nulo en este caso sería peso algo pesado
comentario de Rob Wells en lanzar una excepción, ya que su mala identificación: que no creo que un error tipográfico en el nombre de un paciente es un excepcional en mi humilde opinión circunstancia"
Bien por niveles alternativos. +1 –
Impresionante ... Diseño por contrato – StackUnderflow