IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 4. diel - PRIPOMIENKOVÉ narodenín - Logická vrstva

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Michal Žůrek - misaz:30.10.2013 10:57

nahoře ti nefunguje odkaz na předchozí článek.

 
Odpovedať
30.10.2013 10:57
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Michal Žůrek - misaz
David Hartinger:30.10.2013 11:00

Díky, na ty jsem zapomněl :)

Odpovedať
30.10.2013 11:00
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Kit:30.10.2013 11:45

Myslím si, že by si třída Osoba měla ohlídat platná vstupní data. Asi takto:

public class Osoba {

    private string jmeno;
    private DateTime narozeniny;

    public string Jmeno {
        get {
            return jmeno;
        }
        set {
            if (value.Length < 3)
                throw new ArgumentException("Jméno je příliš krátké");
            jmeno = value;
        }
    }

    public DateTime Narozeniny {
        get {
            return narozeniny;
        }
        set {
            if (value.Date > DateTime.Today)
                throw new ArgumentException("Datum narození nesmí být v budoucnosti");
            narozeniny = value;
        }
    }

    public Osoba(string jmeno, DateTime narozeniny) {
        Jmeno = jmeno;
        Narozeniny = narozeniny;
    }
}
Odpovedať
30.10.2013 11:45
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Kit
David Hartinger:30.10.2013 11:53

Přijde mi logičtější, když to dělá ten správce. Potom by v něm byla i metoda pro editaci. Ale to je věc názoru.

Odpovedať
30.10.2013 11:53
New kid back on the block with a R.I.P
Avatar
Jan Vargovský
Tvůrce
Avatar
Jan Vargovský:30.10.2013 12:00

Budeš to nějak dál rozvíjet ? Přijde mi zbytečně používat binding list, když nevyužíváš jeho hlavní vlastnost => zahrnuje v sobě události, když něco přidáš, odebereš atd.

 
Odpovedať
30.10.2013 12:00
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Jan Vargovský
David Hartinger:30.10.2013 12:03

Samozřejmě, že ho používám, je to dále vysvětlené.

Editované 30.10.2013 12:03
Odpovedať
30.10.2013 12:03
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovedá na David Hartinger
Kit:30.10.2013 12:03

Když si to třída ohlídá sama, správce je zbytečný. Proč psát 5 správců pro 5 uživatelů třídy, když si vstupní data mohu ošetřit v jednom setteru? Je to ostatně jeho hlavní poslání.

Odpovedať
30.10.2013 12:03
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovedá na David Hartinger
Jan Vargovský:30.10.2013 12:04

Tak to sorry, že spamuju. Jen mě to hned zaujalo, když jsem koukal na zdrojáky :)

 
Odpovedať
30.10.2013 12:04
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Kit
David Hartinger:30.10.2013 18:02

Není zbytečný, někam kolekci musíš dát a metody pro vyhledávání také. Učit dávat validace do setterů se mi nelíbí, protože potom trpí rychlost aplikace. Když už tak do konstruktoru, ale zde musí být vlastnosti public z obou stran, aby fungoval serializer. Mám to rozmyšlené a vše tu má svůj smysl.

Odpovedať
30.10.2013 18:02
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovedá na David Hartinger
Kit:30.10.2013 18:14

Validace přece nepatří do kolekce, ale do její položky. Co když máš v té kolekci položky různých typů? Budeš do té kolekce dávat validaci každého typu? To je přece nesmysl a bylo by to děsně nepřehledné.

Validace v setterech nezdržuje víc, než validace ve správci. Toho správce totiž můžeš velmi snadno obejít, ale setter nemáš jak. Nádherné zapouzdření.

V tom případě gettery a settery vůbec nepotřebuješ. Jenom ti v kódu zaclánějí. Stačí, když ty atributy dáš public a máš to úplně to samé, jako když tam dáš get; set;

Odpovedať
30.10.2013 18:14
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!