Vlákno názorů k článku Multimetody v Clojure aneb polymorfismus bez použití OOP od frffgcfggf - jako priklad je kruh-elipsa pouzitelny, ale stejne si...

  • Článek je starý, nové názory již nelze přidávat.
  • 14. 4. 2016 7:14

    frffgcfggf (neregistrovaný)

    jako priklad je kruh-elipsa pouzitelny, ale stejne si myslim, ze zde
    hledaji problem kde neni.
    hierarchie dedeni ma jit od obecnejsiho ke konkretnejsiho.
    rodicovska trida je obecnejsi, potomek je konkretnejsi.

    elipsa je obecnejsi nez kruh, ma dve ruzne osy. kruznice ma obe osy
    stejne. kruh je potomek elipsy.

    realne cislo je potomkem komplexniho cisla, realne cislo je zuzeni komplexniho cisla v tom, ze ma nulovou komplexni slozku.

    myslim, ze v oop to lidi ale dedi naopak. kruznice ma jenom promenne x,y,r, zatimco elipsa jich ma vice x,y,l1,l2,uhel.

  • 14. 4. 2016 9:49

    atarist (neregistrovaný)

    Pokud je kruh (nebo kruznice) potomek elipsy, tak to znamena, ze i pro kruh mas k dispozici treba setA(), setB(), navic k tomu setR() atd.? No to by prece bud rozbilo tvrzeni o stejne dlouhych osach, nebo bys settery nedelal (podle me nejlepsi reseni) nebo by to vyhazovalo vyjimky?

    Navic i kdyby to takto fungovalo, tak si myslim, ze takto hierarchie trid v OOP nebyly mysleny :) Tam se spis tise predpoklada 'obecnejsi == nektere vlastnosti *neexistuji* nebo jsou tak obecne, ze ta obecna trida musi byt abstraktni'.

  • 16. 4. 2016 22:21

    Kritik (neregistrovaný)

    "Navic i kdyby to takto fungovalo, tak si myslim, ze takto hierarchie trid v OOP nebyly mysleny :) "

    Myslím, že zcela původně hierarchie tříd v OOP nebyly myšleny vůbec nijak. Jen "buňky" a zprávy mezi nimi. Jinak samozřejmě že v jazycích, které nedokáží změnit třídu objektu za chodu, budou s rozhraními problémy.