Zastanawiam się, co jest dobrą zasadą OOP, jeśli w aplikacji na iOS, jest UITreeView
, a UINodeView
z przedmiotem UITreeView
o rootNodeView
i węzeł ten korzeń odgałęzia z leftChildNodeView
i rightChildNodeView
.W dobrej zasadzie OOP, powinien nodeView prosić o dodanie do drzewa, lub czy drzewo dodać nodeView?
Jeśli każdy obiekt UINodeView
może być "przeciągnięty i upuszczony", to gdzie na ekranie, który jest implementowany w obsłudze UINodeView
'-touchesMoved
, jest ta dobra zasada OOP? Ponadto, jeśli nowy nodeView foo
jest naprawdę bliski jednemu z węzłów, który nie ma lewego lub prawego potomka, węzeł foo
można dodać do tego węzła jako element podrzędny.
I przypuszczam, że jeśli kolejny nodeView jest bar
a także nie ma rodziców (czyli także zwisające), ma sens, że foo
mogą być dodawane jako dziecko bar
„s, jak również.
Gdyby ten foo
nodeView „prosić o pozwolenie od węzła do dodania jako lewe lub prawe dziecko” i „go dodać jeśli dozwolone”, lub jeśli w UIViewController
lub UITreeView
wykryje, że węzeł porusza się wewnątrz siebie, a " zdecydować, że jest on zbliżony do innego węzła (wszystkich węzłów na ekranie) i nie ma lewego lub prawego dziecka i dodać foo
jako dziecko "?
Oczywiście jeśli tylko węzeł w drzewie można dodać węzeł podrzędny, wówczas UITreeView
może wykonać zadanie, ale jeśli dowolnego węzła (zwisające lub nie) może być rodzic, następnie UIViewController
lub główny widok UIView
wydaje się potrzeba wykonać tę pracę.
Czy robi to w taki czy inny sposób naruszając dobre zasady OOP?
Czy możesz napisać jakiś kod? Tak jak ten, który obsłuży te zmiany, kontroler i widok. –