[JS] Nie dziedziczenie, relacje? Jak "to" nazwać?


(look997) #1

Mam taką relację w aplikacji napisanej w JS:


(Grzegorz Olszewski) #2

Nie do końca wiem o co pytasz - jak to zaimplementować, czy jak to nazwać?

 

Jeśli chodzi o nazwę, to taka relacja nazywa się agregacja:

 

http://pl.wikipedia.org/wiki/Agregacja_%28programowanie_obiektowe%29


(look997) #3

Tak właściwie to przy okacji pytania o nazwę zapytałem też o sposób realizacji.

Z tej wiki wynika, że bardziej pasuje “Kompozycja”.

 

Z tym że to co ja robię, to jest bardziej że z poziomu podelementu-widgetu mam dostęp do nadelementu-sekcji. z poziomu sekcji (przynajmniej w tym przypadku) nie mam dostępu do poszczególnych widgetów.

Trochę się różni czy czegoś nie rozumiem?


(Grzegorz Olszewski) #4

Z programistycznego punktu widzenia kompozycja nie różni się od agregacji.

 

Pokaż implementację, to będę mógł powiedzieć coś więcej.


(Frankfurterium) #5

Trochę to wszystko postawiłeś na głowie. Struktura obiektów JS-owych ma postać drzewa, ale relacje zawsze są jednostronne. Element nadrzędny zna wszystkie swoje dzieci, ale nie odwrotnie. Teraz zamiast wyprawiać jakieś wygibasy, po prostu zmień model - przy zmianie położenia widgetu nie nadpisuj żadnej dziwnej referencji do parenta, tylko w całości przenieś go do innej sekcji. Tym samym przenieś odpowiedzialność za widgety (a przynajmniej za ich położenie) z nich samych do sekcji.


(look997) #6

Na GitHubie:

https://github.com/look997/Tasks-Notepad

Chodzi mi o wygodę odnoszenia się do sekcji z poziomu metod widgeta. stostowanie this.sectionEl jest wygodne. No chyba że jest lepszy sposób. Nie wiem, pewnie błądzę. Ktoś mnie musi poprowadzić. :wink: