我想知道什么是好的 OOP 原则,如果在 iOS 应用程序中,有 aUITreeView
和 a UINodeView
,UITreeView
对象有 a rootNodeView
,并且这个根节点用leftChildNodeView
, 和分叉rightChildNodeView
。
如果每个UINodeView
对象都可以在屏幕中的任何位置“拖放”,这在UINodeView
's 的-touchesMoved
处理程序中实现——那是好的 OOP 原则吗?此外,如果一个新的 nodeViewfoo
确实靠近没有左或右子节点的节点之一,则foo
可以将该节点作为子节点添加到该节点。
而且我想如果另一个 nodeView也没有父母(也就是说,也悬空),那么也可以添加为' 孩子是bar
有道理的。foo
bar
此foo
nodeView 是否应该“请求节点允许添加为左子或右子”和“如果允许则添加”,或者是否应该UIViewController
检测UITreeView
到一个节点在自身内部移动,并“决定它靠近另一个节点(屏幕上的所有节点)并且没有左或右孩子,并添加foo
为孩子”?
显然,如果树中只有一个节点可以添加子节点,那么就UITreeView
可以完成这项工作,但如果任何节点(悬空或不悬空)都可以成为父节点,那么UIViewController
主视图UIView
似乎需要完成这项工作。
这样做是否违反了良好的 OOP 原则?