Mając takie coś
class ExampleClass {
final String port;
final Service1 service1;
final Service2 service2;
final Service3 service3;
final Object obj;
final Object obj2;
// ...
}
robiłem np. tak:
class ExampleClass {
final Config config;
final Components components;
// ...
}
class Config {
final String port;
// ...
}
class Components {
final Service1 service1;
final Service2 service2;
final Service3 service3;
final Object obj;
final Object obj2;
// ...
}
Dzisiaj spotkałem się z takim rozwiązaniem by ładować wszystko do Mapy i udostępnić słownik kluczy tej mapy.
class ExampleClass {
final ConfigHolder configHolder;
// ...
Service2 service2 = (Service2) configHolder.get(ConfigKeysDictionary.SERVICE2);
// ...
}
class ConfigHolder {
Map<String, Object> map;
// ...
}
class ConfigKeysDictionary {
final static String HOST = "host";
final static String SERVICE1 = "service1";
final static String SERVICE2 = "service2";
final static String SERVICE3 = "service3";
final static String OBJECT = "object";
final static String OBJECT1 = "object1";
}
Drugi sposób ma sens? W jakich przypadkach?