Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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í.
Avatar
Michael Olšavský:4.1.2014 21:32

Ahoj všichni,
zkoumal jsem třídy .NET a docela mě zarazilo, proč se v běžných kódech nesetkávám s atributy (akorát v ASP.NET) a v knihovnách je toho naopak tolik. Je jen málo metod, které by se jim vyhnuly. K čemu jsou tedy tak důležité? Zdá se mi to pouze jako doplňková informace, která nemá moc velký význam narozdíl od xml dokumentace.

Zároveň se chci zeptat, zdali jste někdy používali reflexy a k čemu se to přesně hodí. Pokud jsem to pochopil, mohu se napojit na jakoukoliv knihovnu (či proces?) a zjistit si o něm všechno info nebo vytvořit novou instanci run-time?

 
Odpovědět
4.1.2014 21:32
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Michael Olšavský
David Hartinger:5.1.2014 10:13

Reflexe ti umožňuje zkoumat zdrojový kód programu za jeho běhu a dokonce ho i měnit (rozšiřovat). Reflexí můžeš nahradit hnusné switche podobné tomuto:

switch (akce)
{
   case "krok": karel.Krok(); break;
   case "vlevovbok": k.VlevoVbok(); break;
   // dalších 1000 příkazů
}

Nad metody si dáš nějaký vlastní atribut, třeba volatelný. Při spuštění aplikace si projedeš třídu a přes reflexi najdeš metody s tímto atributem, které si uložíš. Dále je pak už jen voláš podle toho, co ti přišlo ve stringu. Ušetříš opravdu spoustu redundantního kódu.

Nahoru Odpovědět
5.1.2014 10:13
You are the greatest project you will ever work on.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:5.1.2014 10:27

Na podobném principu je v Javě postaven enum. System.in, System.out a System.err jsou také enum.

Nahoru Odpovědět
5.1.2014 10:27
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 3 zpráv z 3.