[C# OOP] Validations and Exceptions
Искам да попитам кога е заължително да имаме валидация в едно пропърти?
Отделно от това би ли трябвало да имаме в тийм проекта?
А трябва ли да имаме собствени ексепшъни?
Благодаря
Искам да попитам кога е заължително да имаме валидация в едно пропърти?
Отделно от това би ли трябвало да имаме в тийм проекта?
А трябва ли да имаме собствени ексепшъни?
Благодаря
Когато сметнеш за необходимо, че определени стойности биха нарушили цялостта на обекта. Ако смяташ че всякакви стойности са валидни за вашия проект - не прави валидации. Ако по задание например е ОК да има отрицателна кръв героят или името му да е празно и да не може друг играч на картата да разбере кой е тоя безименния...
До колкото си спомням по условие трябва да имате поне един собствен ексепшън.
Добре, но неща като примерно TextureWidth и TextureHeight, които не трябва да са отрицателни, трябва ли да се валидират, при положение, че се сетват само веднъж (в повечето случаи) и то само с константи. Даже цялото това се случва вътре в класа.
И още нещо. За health-а на играча. Той се сетва в началото на някаква хардкодната стойност и когато играчън бива ударен му се извиква GetHit..() метода, където health- намаля. Има проверка дали е 0 или под нулата и ако да, то край на играта. По-добре ли ще е в такъв случай да се сложи валидация в сетъра, която да хвърля, например PlayerIsDeadException() или нещо подобно и някъде този Exception да се хваща и да се спира играта?
Константата няма правила. Дивелъпърът не е нужен да помни на изуст, че TextureWidth не може да е отрицателно. Какво ако отвори някой клас и смени константата на -20?
По-добре да райзва ивент, че е умрял играчът, вместо ексепшън.
А кога не се правят пропъртита в класовете и грешно ли е да се правят винаги?