NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 4 - Upomínač narozenin - Logická vrstva

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Kit:1.11.2013 18:30

Stačí, když každá osoba poskytne kolekci informaci (vlastnost) o tom, za jak dlouho bude mít narozeniny. To si spočítá velmi snadno. Kolekce si už dokáže vybrat osobu s nejmenším číslem.

Odpovědět
1.11.2013 18:30
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Kit
Jan Vargovský:1.11.2013 18:31

Ano, ale nemusí to být jediná vlastnost. Může se to rozšířit, přidat další vlastnosti a pořád budeš rvát logiku někde tam kde nemá...

 
Odpovědět
1.11.2013 18:31
Avatar
Odpovídá na Jan Vargovský
Neaktivní uživatel:1.11.2013 18:45

já osobně bych taky nechal řešit osobu, za jak dlouho bude mít narozeniny spíš než nějaký controler.

Odpovědět
1.11.2013 18:45
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Kit:1.11.2013 18:48

Takže raději budeš psát další a další managery a zpřístupňovat jim vlastnosti osob, které by se vůbec neměly zveřejňovat?

Bavíme se o OOP. Pokud chceš mít anemické objekty, ve kterých budou pouze vlastnosti, jejich gettery a settery, použij raději struct.

Odpovědět
1.11.2013 18:48
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Jan Vargovský:1.11.2013 18:52

Takhle ano. Ale my se bavíme o tom, jaká osoba bude mít nejdřív narozeniny ze seznamu osob...

 
Odpovědět
1.11.2013 18:52
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Kit
Jan Vargovský:1.11.2013 18:53

Proč bych nemohl zveřejňovat vlastnosti osoby ? Teď podle té Funebrakovy odpovědi se možná celou dobu bavíme každý o nečem jiném

 
Odpovědět
1.11.2013 18:53
Avatar
Odpovídá na Jan Vargovský
Neaktivní uživatel:1.11.2013 19:00

Co jsem pochopil, tak řešíte která osoba bude mít první narozeniny. Opravte mě jestli se pletu :D

Odpovědět
1.11.2013 19:00
Neaktivní uživatelský účet
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Jan Vargovský
Kit:1.11.2013 19:09

Protože gettery a settery porušují zapouzdření objektů.

Odpovědět
1.11.2013 19:09
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Odpovídá na Kit
Michal Žůrek - misaz:1.11.2013 19:15

ale zas je blbost aby bylo všechno top secret.

 
Odpovědět
1.11.2013 19:15
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Michal Žůrek - misaz
Kit:1.11.2013 19:49

Jistě, ale také je blbost, aby třída měla 20 atributů, 20 getterů a 20 setterů a žádné metody. V tom případě skutečně struct poslouží mnohem lépe.

Následující kód není návodem, ale je jen ukázkou, jak se dá snadno nahradit anemická třída strukturou.

using System;

class Struct {
    struct Osoba {
        public string Jmeno;
        public DateTime Narozeniny;

        public Osoba(string jmeno, DateTime narozeniny) {
            Jmeno = jmeno;
            Narozeniny = narozeniny;
        }

        public string naroz() {
            return Jmeno + " má narozeniny " + Narozeniny;
        }
    }

    static void Main(string[] args) {
        Osoba os = new Osoba("Adam", new DateTime(2013, 11, 1));
        Console.WriteLine(os.naroz());
    }
}

Vlastnosti mohou být v tomto případě i private a mít i gettery/settery.

Odpovědět
1.11.2013 19:49
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 10 zpráv z 50.