2017-05-03 57 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

不,沒有問題。您可以按照您的要求更改變量的值。

相關問題