良い OOP の原則とは何だろうか。iOS アプリにUITreeView、および がありUINodeView、UITreeViewオブジェクトに があり、このルート ノードが、および でrootNodeView分岐している場合。leftChildNodeViewrightChildNodeView
のハンドラーに実装されている画面のどこにでも各UINodeViewオブジェクトを「ドラッグ アンド ドロップ」できる場合、それは適切な OOP 原則ですか? さらに、新しい nodeViewが、左右の子を持たないノードの 1 つに実際に近い場合、そのノードをそのノードに子として追加できます。UINodeView-touchesMovedfoofoo
そして、別の nodeView が親を持たない (つまり、ぶら下がっている) 場合、の子としても追加できるのbarは理にかなっていると思います。foobar
このfoonodeView は、「ノードに左または右の子として追加する許可を求める」必要があり、「許可されている場合は追加する」必要があります。UIViewControllerまたはUITreeView、ノードが内部で移動していることを検出し、「別のノードに近いと判断する必要があります」ノード (画面上のすべてのノードのうち) であり、左右の子がなくfoo、子として追加します"?
明らかに、ツリー内のノードだけが子ノードを追加できる場合UITreeViewは、その仕事を行うことができますが、任意のノード (ぶら下がっているかどうかに関係なく) が親になることができる場合はUIViewController、メイン ビューUIViewがその仕事をする必要があるようです。
いずれかの方法でそれを行うことは、優れた OOP 原則に違反しますか?