Preguntas etiquetadas con language-agnostic

767
Interfaz vs clase base

¿Cuándo debo usar una interfaz y cuándo debo usar una clase base? ¿Debería ser siempre una interfaz si no quiero definir realmente una implementación base de los métodos? Si tengo una clase de perros y gatos. ¿Por qué querría implementar IPet en lugar de PetBase? Puedo entender tener interfaces...

435
¿Cuándo lanzar una excepción?

Tengo excepciones creadas para cada condición que mi aplicación no espera. UserNameNotValidException, PasswordNotCorrectExceptionEtc. Sin embargo, me dijeron que no debía crear excepciones para esas condiciones. En mi UML esas SON excepciones al flujo principal, entonces ¿por qué no debería ser...