Pytania oznaczone «language-agnostic»

767
Interfejs a klasa podstawowa

Kiedy powinienem używać interfejsu, a kiedy powinienem używać klasy bazowej? Czy powinien to zawsze być interfejs, jeśli nie chcę definiować podstawowej implementacji metod? Jeśli mam klasę psów i kotów. Dlaczego miałbym chcieć wdrożyć IPet zamiast PetBase? Rozumiem, że mam interfejsy dla ISheds...

435
Kiedy rzucić wyjątek?

Mam wyjątki utworzone dla każdego warunku, którego moja aplikacja nie oczekuje. UserNameNotValidException, PasswordNotCorrectExceptionItd. Powiedziano mi jednak, że nie powinienem tworzyć wyjątków od tych warunków. W moim UML TO SĄ wyjątki od głównego przepływu, więc dlaczego nie miałby to być...