0
目前在這一回購:https://github.com/quinnliu/WalnutiQ如何使面向對象的Java項目完全通用
我用下面的代碼來創建一個局部腦模型:
Neocortex unconnectedNeocortex = new Neocortex(new Region("V1", 4, 4,
4, 50, 3), new RegionToRegionRectangleConnect());
LGN unconnectedLGN = new LGN(
new Region("LGN", 8, 8, 1, 50, 3));
Retine unconnectedRetina = new Retine(65, 65);
NervousSystem nervousSystem = new NervousSystem(unconnectedNeocortex,
unconnectedLGN, unconnectedRetina);
// connect Retine to LGN
Retine retine = nervousSystem.getPNS().getSNS().getRetine();
LGN LGN = nervousSystem.getCNS().getBrain()
.getThalamus().getLGN();
SensorCellsToRegionConnect sensorCellsToRegionConnect = new SensorCellsToRegionRectangleConnect();
sensorCellsToRegionConnect.connect(retine.getVisionCells(),
LGN.getRegion(), 0, 0);
// connect LGN to V1 Region of Neocortex
Neocortex neocortex = nervousSystem.getCNS().getBrain().getCerebrum()
.getCerebralCortex().getNeocortex();
RegionToRegionConnect regionToRegionConnect = new RegionToRegionRectangleConnect();
regionToRegionConnect.connect(LGN.getRegion(),
neocortex.getCurrentRegion(), 0, 0);
您可能已經注意到下面的代碼我上述使用具有不良代碼味道:
Retine retine = nervousSystem.getPNS().getSNS().getRetine();
LGN LGN = nervousSystem.getCNS().getBrain().getThalamus().getLGN();
我想通過使弄成這樣解決這個問題:
Retine retine = nervousSystem.get<Retine>();
LGN LGN = nervousSystem.get<LGN>();
我被告知這是可能的,但我目前不知道如何做到這一點。有人可以解釋如何讓這個工作的步驟?謝謝!
你想要什麼是不可能的。 「NervousSystem'''接口應該暴露'getRetine()'。 –
[Demeter法](http://en.wikipedia.org/wiki/Law_of_Demeter) - 簡單的'getRetina'方法在神經系統上一次只傳遞一個請求就是一個解決方案。不必知道神經系統內的視網膜是更好的。 – zapl
你試圖做的事情與真正的泛型沒有任何關係,它並沒有太大的意義。你如何期待神經系統瞭解視網膜?好像你想要某種圖形遍歷機制。再次,與泛型無關。 – jtahlborn