Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

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
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Petr Nymsa
Tvůrce
Avatar
Petr Nymsa:30.10.2013 19:05

Nevím jak ve WF ale ve WPF pomocí XAML a Binding lze dokonce krásně odchytávat vyjímky a ihned zobrazit uživateli třeba pomocí "červeného borderu" okolo textboxu. Právě například při zadávání dat :)

Odpovedať
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Kit
Tvůrce
Avatar
Odpovedá na David Hartinger
Kit:30.10.2013 19:26

Ještě jsem se v tom chvíli vrtal a zjistil jsem, že se mi metoda Pridej scvrkla na

public void Pridej(Osoba osoba) {
    Osoby.Add(osoba);
}

Volá se pak jednoduše

Pridej(new Osoba(jmeno, datumNarozeni.Date));

Říká se tomu Dependency Injection.

Otázkou je, k čemu je vlastně dobrá třída SprávceOsob. Zda by nebylo výhodnější použít samotnou kolekci BindingList<Osoba> a případně ji jen rozšířit dle potřeby.

Odpovedať
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:1.11.2013 16:03

Nevím, proč to tady tak rozmazáváš, už by sis mohl zvyknout na to, že každý neprogramuje tím samým stylem, jako ty a ani nechce. Mně se zdá jako hloupost rozšiřovat složitou kolekci, když ji mohu obalit. Bez vlastností by nefungovala serializace, kdybys dělal v .NETu, tak bys to věděl. Můžeš aplikaci upravit a potom ji sem dát, tak to bude mít alespoň nějakou váhu. Každá změna má totiž za následek nutnost dalších úprav, když to dohromady nesladíš, tak tu nemá smysl střílet nějaké části kódu vytržené z kontextu.

Odpovedať
New kid back on the block with a R.I.P
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovedá na Kit
Jan Vargovský:1.11.2013 16:44

Kdyby to bylo na tvůj způsob, tak ani nepotřebuje dělat metodu přidej. Jen se odkáže na instanci spravceOsob.O­soby.Add(...)

Avatar
Kit
Tvůrce
Avatar
Odpovedá na Jan Vargovský
Kit:1.11.2013 16:51

Spíš jen Osoby.Add(...), protože spravceOsob by neexistoval.

Odpovedať
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 Kit
Jan Vargovský:1.11.2013 16:55

Proč by neexistoval ? Existoval by na logické metody, které by ti třídily ty osoby, jako např. osoba s nejbližšími narozeninami atd.

Avatar
Kit
Tvůrce
Avatar
Odpovedá na Jan Vargovský
Kit:1.11.2013 17:11

Takové metody patří do třídy Osoba. Kolekce jsou již vybaveny pro použití těchto metod.

Odpovedať
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 Kit
Jan Vargovský:1.11.2013 17:55

Jak můžeš mít ve třídě Osoba implementovanou metodu, která ti zjistí nejbližší narozeniny ze seznamu osob ?

Chápu, že v dnešní době LINQ a dalších vymožeností je to 1-2 řádky. Ale do Formu máš rvát jen volání metod a né logiku.

Editované
Avatar
Kit
Tvůrce
Avatar
Odpovedá na Jan Vargovský
Kit:1.11.2013 18:05

Jakého Formu? Bavíme se o třídě Osoba. Kam chceš dávat logiku, když ne do objektu?

Odpovedať
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 Kit
Jan Vargovský:1.11.2013 18:14

Osoba je jen jedna a pokud vím, řešíme problém kde implementovat validaci + případnou logiku, abys mohl obsluhovat kolekci Osob. Nato většinou vytváříš nějaký controller/ma­nager/..., který spravuje všechny osoby. Jednoduše máš 20 instancí třídy Osoba a vyber mi jednu osobu, která má nejblíže narozeniny.

EDIT: Já jsem jen zvědavý kde bys chtěl narvat ty příslušné metody, které by obsluhovaly ty osoby v nějaké kolekci. Ten názor, že má být validace uvnitř objektu mám také, nemusím pak vymýšlet různé managery a implementovat logiku objektu mimo objekt.

Editované
Posledné komentáre sú na spodnej časti poslednej stránky.
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.

Zobrazené 10 správy z 50.