yyqian/imagine

关于Comment类

Closed this issue · 2 comments

Jafee commented
  1. 第65行comment.getParent().children.remove(this),不明白为什么要拿到 comment 父节点下的节点,然后移除this ?
  2. children变量和setParent方法,明明都是私有的,为什么可以直接访问呢?
  3. 为什么setParent方法要设置成私有方法?

希望大神可以解答一下,之后可以删掉这个issue,可能问的太简单了。

谢谢提问,不是大神:)

  1. 是个 bug,应该是 comment.getParent().children.remove(comment); 这里的逻辑是如果检查得知 comment 当前是有父节点的,那就把它从当前的父节点的子节点中移除
  2. 因为是在 Comment 类内部访问 Comment 的私有方法和属性
  3. 因为这里的链接是双向的,有更安全的 attachChild 方法来完成这个操作。如果外部只调用了 setParent 方法把当前节点指向一个父节点,会缺失父节点到当前节点的指向,为了避免这种误操作,所以设成私有了。
Jafee commented

我之前想问 this 是不是应该 comment ,不过看到上面有句注释,还是个反问句,就以为是另有用处。

几乎看了一遍这个项目,让我受益很多,谢谢大神!