Avatar
Benjibs
Člen
Avatar
Benjibs:

Mám jednu triedu, ktorej účelom je generovať hlavičku HTML dokumentu.
Trieda obsahuje privátnu premennú code, do ktorej sa po každom zavolaní metódy, ktorá ma za úlohu 'generovat nejakú čast hlavičky' pridá určitý kód.

Taktiež mám statickú private final premennú, ktorá obsahuje stringové pole zo zoznamom možných kódovaní (ktoré pôjdu do <meta charset = "xxx">.
Tá premenná je využitá v metóde isValidCharset, vraciacej boolean hodnotu, na základe toho, či sa jej Stringový argument nachádza v zmienenom poli.

Keď vytvorím instanciu triedy, do premennej code sa hned pridá doctype, html, head, a meta charset. Mal by konštruktor raisovat výnimku, v prípade že isValidcharset vráti False (argumentom konštruktoru je názov 'charset'-u)?

Alebo je lešpie nechat kontrolu validity charsetna vyššie časti programu? (kedže isValidChaset je public static)

Odpovědět 8.7.2013 10:43
1 + 1 = 2
Avatar
Kit
Redaktor
Avatar
Odpovídá na Benjibs
Kit:

Záleží na tobě. Pokud chceš, aby se v případě chyby objekt nevytvořil, použij raise. Pokud chceš, aby tu chybu nějakým způsobem opravil (např. vložením implicitního UTF-8), ošetři si to už v konstruktoru.

Nahoru Odpovědět 8.7.2013 10:57
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.