V Javascriptu jdou dopsat settery a gettery dodatečně až v případě potřeby. Proto je správné je nepoužívat a ignorovat neznalce jako Zboj, kteří to označí za prasokód.
V OOP jsou gettery a settery zbytečné. Ani v Javascriptu nedávají smysl.
proc?
Už jsem to tady psal mnohokrát. Porušují zapouzdření objektu. Programátoři pak zbytečně píší výkonný kód mimo objekt místo toho, aby ho psali dovnitř. OOP je tak degradováno na trochu lepší strukturované programování.
takze kdyz budu mit zpravu "nastav jmeno" kterou poslu objektu ktery ji zpracuje tak ze zvaliduje jmeno a pojmenuje ho - tak tim porusuju zapouzdreni? tim padem si v OOP zakazal metody a zpravy ktere tam uz tak rikajic nejsou potreba ... vlastne OOP porusuje zapouzdreni objektu ... to se mi uplne nelibi clovece ...
Ano tím porušujete zapouzdření, protože s objektem máte pracovat jako s celkem, a nemá být individualizovaný, individuální zpracování má být uvnitř objektu.
Takže když půjde o zpracování objektu zaměstnanec, tak kontrolu jména máte dělat uvnitř, třeba na základě databáze, ale ne takto map(update, [z for z in zamestnanci if z.get_jmeno() == "Jan"]), ale takto map(update, [z for z in zamestnanci if z.identify({jmeno: Jan})).
Dovnitř objektu poskytnete data k vyhledání, ale nijak neurčujete, jak se data mají vyhledat. V prvním případě to určuje to "==", algoritmus zpracování se dostal vně objektu. To má tu zásadní nevýhodu, že když chcete porovnávání změnit, například na "LIKE", tak to buď musíte změnit všude, kde se něco podobného vyskytuje, nebo přetížit operátor "==", což se vám jen tak nepodaří, protože to "==" bude kontextově závislé, takže jméno stejně budete muset obalit do nějakých jiných objektů.
Kdežto v druhém případě vám stačí změnit metodu identify. A je vymalováno. Vnější objekty nemusí vůbec znát jméno daného objektu. Identifikaci ke zpracování děláte obecnou metodou, která může mít různou implementaci v každé třídě. Změny pak provádíte jen v té třídě, které se to týká a o závislosti mezi vnějšími třídami se nemusíte starat. Dále identifikační metoda si může jen vyzobávat údaje, které potřebuje.