IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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
Zbyňa
Člen
Avatar
Zbyňa:17.4.2014 18:58

Mám pár dotazů k oop nevím jak to nejlépe říct tak jsem přiložil dokument ve formátu doc snad se nebudete nikdo zlobit za copyright ale jinak mě to rychleji nešlo měl jsem to dost narychlo tak se omlouvám:`

 
Odpovědět
17.4.2014 18:58
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Zbyňa
Petr Nymsa:17.4.2014 19:02

Bylo by dobré ten soubor přiložit - nelze ho přiložit na přímo, tudíž ho někam uož a pošli odkaž

Nahoru Odpovědět
17.4.2014 19:02
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Zbyňa
Člen
Avatar
Odpovídá na Petr Nymsa
Zbyňa:17.4.2014 21:59

tak to se omlouvám. Prosím mohl by jste mi poradit jak ten soubor přiložit mám ho dvakrát na ploše jednou v typu Dokument aplikace Microsoft Word s podporou maker (.docm) a podruhé normálně Dokument aplikace Microsoft Word
(.docx) obojí se otevírá v programu Microsoft Office Client Virtualization Handler

 
Nahoru Odpovědět
17.4.2014 21:59
Avatar
Zbyňa
Člen
Avatar
 
Nahoru Odpovědět
17.4.2014 23:27
Avatar
Zbyňa
Člen
Avatar
Zbyňa:17.4.2014 23:30

tak takhle by to mohlo být ještě abych nebyl tak neoriginální tak mam v úmyslu to navíc rozšířit

 
Nahoru Odpovědět
17.4.2014 23:30
Avatar
coells
Tvůrce
Avatar
Odpovídá na Zbyňa
coells:18.4.2014 0:38

Ahoj Anube, díval jsem se na Tvůj dokument a je vidět, že se snažíš to pochopit, ale jsi hodně mimo mísu :-)

Ve zkratce na základě Tvého dokumentu:

  • nekonzistence interního stavu nejen může, ale běžně také nastává v OOP, hlavně pokud není design aplikace korektní
  • použití objetků není ani bezpečnější, ani nedělá aplikaci stabilnější, to jsou nesmysly
  • zapouzdření nenutí používat objekt tím správným způsobem, to je omyl
  • interface nedělí vlastnosti objektu na veřejné a neveřejné - to je výmysl C++, ale s OOP má společného stejně málo jako Java
  • dané příklady jsou hodně něšťastné, nejen, že neukazují principy OOP, ale navíc obsahují nezávislé metodické chyby

Jak je to správně:

  • OOP definuje paradigma - způsob, jakým vyjádřit myšlenku
  • v OOP máme čtyři základní stavební prvky: objekt, rozhraní, kanál a zpráva

objekt - je autonomní identita, která vystavuje rozhraní
rozhraní - definuje způsob komunikace, jakým můžeme komunikovat s objektem pomocí kanálu
kanál - mezi sebou vytváří objekty na základě známého rozhraní, aby poslaly zprávu
zpráva - je komunikační prvek

  • díky těmto stavebním prvkům a jejich korektním použitím získáme tři základní koncepty OOP: zapouzředí, dědičnost a polymorfismus

zapouzdření - umožňuje skrýt interní stav objektu
dědičnost - umožňuje znovu používat již existující kód
polymorfismus - zavádí transparentnost, pokud spolu totiž komunikují dva objekty, znají pouze svoje rozhraní, aby bylo možné na jeho základě vytvořit komunikační kanál, ve skutečnosti ale objekt neví s kým komunikuje, ví pouze, že příjemce bude rozumět zprávě, kterou posílá

Programovací jazyky typu C++, Java nebo C# jsou založené na konceptu objektového programování, ale z praktických důvodů nabízejí řadu vlastností, které mají zjednodušit život. Díky tomu se OOP čím dál více vzdalují. Můžeš tedy říct, že programuješ v C# nebo v Javě, ale nemůžeš říct "rovná se OOP", protože to je na jazyku nezávislé. Podívej se na SmallTalk, asi budeš hodně vyjevený, jak málo je čistý objektový jazyk podobný těm výše uvedeným.

 
Nahoru Odpovědět
18.4.2014 0:38
Avatar
Zbyňa
Člen
Avatar
Zbyňa:18.4.2014 2:41

objekt chápu zpráva to je jasný ale rozhraní s kanálem si neumím přirovnat k nějakému příkladu mám na mysli analogii jakoukoli.
kanál - mezi sebou vytváří objekty na základě známého rozhraní, aby poslaly zprávu
tomuto nerozumím zde se ztrácím nejlépe kdyby jsi to raději přirovnal k něčemu konkrétnímu například něco ze života či jak bych to řekl

 
Nahoru Odpovědět
18.4.2014 2:41
Avatar
coells
Tvůrce
Avatar
Odpovídá na Zbyňa
coells:18.4.2014 11:13

Pokud chceš příklad ze života, tak si představ automat na jízdenky.

Automat je složitý stroj, ale když si chceš koupit jízdenku, nezajímá Tě, co je uvnitř, je to black-box.
Automat definuje svoje rozhraní přes čelní panel s několika tlačítky, vstupem na peníze a výstupem na jízdenky.
Když chceš jízdenku, musíš znát jeho umístění (aka identifikaci instance), postavíš se před něj a připravíš se ho použít, což je vytvoření komunikačního kanálu na základě identifikace příjemce zprávy a odesílatele.
Vložení peněz a stisknutí volby je odeslání zprávy.

Když někdo vymění celý vnitřek automatu za jiný nebo novější typ, ale nechá čelní panel stejný (rozhraní), nemusíš se to vůbec dozvědět. Všechno, co potřebuješ vědět, je, jak ho použít díky jasně definovanému rozhraní - to se nazývá polymorfismus - a je to vůbec nejdůležitější stavební princip celého OOP.

Uvedu ještě jeden příklad - chceš zavolat záchranku.

  1. záchranná služba definuje svoje rozhraní - telefonní číslo 155
  2. vytočením čísla vytváříš kanál pro odeslání zprávy
  3. když se na druhé straně ozve hlas, netušíš s kým mluvíš - zapouzdření -, ale díky rozhraní víš, že dokáže zpracovat zprávu, kterou chceš poslat - polymorfismus
 
Nahoru Odpovědět
18.4.2014 11:13
Avatar
Zbyňa
Člen
Avatar
Zbyňa:18.4.2014 12:08

mno to mě podrž asi tomu rozumím. Takže když jsem psal ten dokument tak jsem tam měl rozvést co je to polymorfismus a taky jsem tam mohl uvést jak spolu správce klient a host mluví (komunikují a přes jaké rozhraní)
teď když se zeptám hloupě když s Vámi(tebou) komunikuju tak vlastně vytvářím kanál, vím že dokážete zpracovat mé dotazy a to tak že tomu rozumím
.
vytočil jsem mj. kanál devbook.cz pak jsem vytočil diskusní fórum a pak vytvořil novou diskusi oop v C#. Jinak Devbook.cz je objekt který definuje své rozhraní přes toto fórum ale jen v tomto případě. tím že jsem založil novou diskusi jsem vytvořil kanál, tím že mohu s vámi toto rozebírat vytvářím zapouzdření, jenže připojit se k této diskusi může každý kdo zná rozhraní nebo ho vlastní. (správně?)

 
Nahoru Odpovědět
18.4.2014 12:08
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 9 zpráv z 9.