Hirdetés

Új hozzászólás Aktív témák

  • Davs
    tag

    Sziasztok!

    Olvasom a hátékony java könyvet, nem rossz könyv, de néha hatalmas ugrásnak érzem.
    Lenne kérdésem, most van egy kompozicíó vs osztály öröklés téma.

    Ezt nem teljesen értem:
    "Az öröklés csak akor játszik igazián szerepet, amikor az alosztály tényleg valódi altípusa a szuperosztálynak. Más szavakkal egy B osztály csak akkor bővíthet egy A osztályt, ha a két osztály között megvan a megfelelőségi kapcsolat. Mielőtt B-vel bővítenénk A-t, tegyük fel a kérdést: Minden B megfelel A-nak? Nemleges válasz esetén a B esetleg tartalmazzon egy A privát példányt és az API legyen kisebb és egyszerűbb."
    Mi a valódi altípus, és megfelelőségi kapcsolat? Nekem ezek a fogalmak nem igazán derültek ki.

    Meg a könyv azt írta, hogy a Kompozíció végül is a Decorator tervezési minta... Azzal megtudnám tanulni ezt a kompozíciót? :).
    Ez sem rossz amit ír a könyv ír, de nekem akkor sem tiszta a példa alapján belekavarodok...

    És amúgy is érdemes használni a Kompozíciót?

    class A {}
    class B extends A {} -> ez oroklodes
    class C {
    public A AObject = new A() ; -> ez kompozicio
    }

    B objektum eseten minden public es protected dolgot (metodust es valtozot) oroklunk az A-bol. B-ben tudunk hozzatenni az A-bol orokolt dolgokhoz, de altalanosan elmondhato, hogy ami A-ban van (es public) az a B-ben is ott van, ezert lenyegeben mondhatni, hogy a "B" class "A" tipusu is. Mivel a B az A-tol orokol, az alabbi kodreszlet valid:
    A Avaltozo = new B() ;

    Kompozicio eseten nem csinalhatsz ilyent: A Avaltozo = new C() ; -> mivel a C nem orokol az A-tol, egyszeruen a C csak tartalmaz egy A-t.
    Oroklodes = "olyan, mint" -> B orokol A-tol -> B olyan, mint az A ( B az A altipusa)
    Kompozicio = "van neki" -> C-ben van "A-kompozicio" -> C-nek van A-ja

    Nemtudom, mennyire vilagos ebbol, szerintem rossz tanar lennek, de ha mar ennyit utottem a gombokat, azert elkuldom, hatha van benne valami ertheto is :D (+ remelem nem tevedtem nagyot sehol se)

Új hozzászólás Aktív témák