2017-05-03 59 views
2

说我有Child专用(内部)类另一个类Parent内:好的做法或不好的做法更新实例变量

public class Parent { 
    private boolean isBusy; 
    private Child child = new Child(); 

    public void doSomething() { 
     child.playToy(); 
    } 

    private class Child { 

    protected void playToy() { 
      isBusy = true; 
    } 
    } 
} 

正如你看到的上面,Parent类有一个布尔变量:isBusy,私人内部类Child有一个功能playToy()它更新该布尔值。是否不好的做法更新上层类中定义的实例变量从内部类?如果这是不好的做法,有什么缺点?

回答

1

由于Child是一个私人类,只能通过Parent实例化我没有看到这样做的任何缺点。

当然,如果您在Parent实现中处理多个Child实例,那么需要注意并发性,但这取决于您正在做什么。

3

由于它是一个私人类,它将只在外部类中实例化,我没有看到任何缺点。这个概念实际上相当普遍,例如内部类扩展了一个监听器来处理外部字段。

0

不,没有问题。您可以按照您的要求更改变量的值。

相关问题