您可以從自上而下的構建數據結構 - 大陸構造城市或從下往上 - main
構建城市並將其傳遞給國家或使用某種組合。 DI有利於後者。
public static void main(String... argv) {
// Bottom up.
City city = new City(/* args relevant to city */);
Country country = new Country(city, /* args relevant to country */);
Continent continent = new Continent(country, /* args relevant to continent */);
Planet planet = new Planet(continent, /* args relevant to planet */);
}
class City {
City(/* few parameters */) { /* little work */ }
}
class Country {
Country(/* few parameters */) { /* little work */ }
}
...
class Planet {
Planet(/* few parameters */) { /* little work */ }
}
可以比自上而下更清潔:
public static void main(String... argv) {
// Top down.
Planet earth = new Planet(
/* all the parameters needed by Earth and its dependencies. */);
}
class Planet {
Planet(/* many parameters */) { /* lots of work */ }
}
...
的DI民間認爲,自下而上的結構導致更多的維護和測試代碼,但你並不需要一個DI框架來使用它。
謝謝,克里斯托弗。IoC看起來不錯,但最初需要基礎設施才能發揮作用,談到Spring和Guice。我不知道這樣的設置是否合理,只是爲了向正確的地方提供幾個命令行參數:) –
@IvanBalashov基礎設施很少。看例子。 –