2
如何在Ruby中獲得類似Java的效果?帶嵌套類的共享作用域
class Outer {
final boolean switch
public Outer(boolean someSwitch) {
switch = someSwitch
}
class Inner {
public void doSomething() {
if (switch) {
//behave like this
} else {
//behave like that
}
}
}
不要緊,交換機必須是最終的;在斯卡拉,它沒有。無論如何。我的內部類生活在外部實例的範圍內,這就是我喜歡的方式。而且我不必將開關傳遞給每個單獨的內部實例。
在Ruby中,我可以在另一個類中嵌套一個類,但這並不意味着除了名稱空間之外的任何東西。我如何得到我想要的效果?我知道這個問題有點含糊,所以即使你不確定,也可以隨意採取措施。
我想要避免的是必須將「父」參數傳遞給內部類,並且必須在內部類中保留另一個實例變量來保存對父級的引用。我的小內部類在其初始化方法中已經有足夠的參數,並且已經有足夠的實例變量。 – Ladlestein
我知道,但我認爲你在上面的鏈接中留下了一些方法。在我看來,這是清理,也許其他一些將取決於你喜歡。 –