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