Mam taką relację w aplikacji napisanej w JS:
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
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?
Z programistycznego punktu widzenia kompozycja nie różni się od agregacji.
Pokaż implementację, to będę mógł powiedzieć coś więcej.
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.
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ć.