Me pregunto qué es un buen principio programación orientada a objetos, si en una aplicación para iOS, hay una UITreeView
, y una UINodeView
, con el objeto de tener un UITreeView
rootNodeView
y ramas de nodos de esta raíz fuera con leftChildNodeView
y rightChildNodeView
.En un buen principio de OOP, ¿debería un nodeView pedir que se agregue a un árbol, o un árbol debe agregar nodeView?
Si cada UINodeView
objeto se puede "arrastrar y soltar" en cualquier lugar de la pantalla, que se implementa en UINodeView
's -touchesMoved
controlador - que es buen principio programación orientada a objetos? Además, si un nuevo nodoView foo
está realmente cerca de uno de los nodos que no tiene ningún elemento secundario izquierdo o derecho, el nodo foo
se puede agregar a ese nodo como elemento secundario.
Y supongo que si otro nodeView que es bar
y también tiene padres (es decir, también colgando), que tiene sentido que foo
se puede añadir como niño bar
's también.
Si esto foo
nodeView "pedir permiso a un nodo que se añaden como un hijo de la izquierda o hacia la derecha" y "añadir que si se permite", o de que las UIViewController
o UITreeView
detecta que un nodo se mueve dentro de sí mismo, y " decide que está cerca de otro nodo (de todos los nodos en la pantalla) y no tiene hijos izquierdo o derecho, y agrega foo
como un niño "?
Obviamente, si solamente un nodo en el árbol puede añadir un nodo hijo, entonces el UITreeView
puede hacer el trabajo, pero si cualquier nodo (colgando o no) puede ser un padre, entonces UIViewController
o la vista principal UIView
parece necesitar para hacer el trabajo.
¿Hacerlo de una manera u otra viola los buenos principios de OOP?
¿Podría publicar algún código? Como el que manejará esos cambios, controlador y vista. –