Diskuze: OOP v C#
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
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ž
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
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:
Jak je to správně:
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
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.
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
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.
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ě?)
Zobrazeno 9 zpráv z 9.