- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
configRequestTasks = new ConfigRequestRepeatingTask[]{
new ConfigRequestRepeatingTask<ApplicationStateModel.ApplicationState>(this) {
@Override
protected BaseConfigRequest<ApplicationStateModel.ApplicationState> createRequest() {
return new ApplicationStateRequest();
}
@Override
public ObjectSetting<ApplicationStateModel.ApplicationState> getConfigSetting() {
return Config.ApplicationState;
}
},
new ConfigRequestRepeatingTask<MessagesConfigurationModel.MessagesConfiguration>(this) {
@Override
protected BaseConfigRequest<MessagesConfigurationModel.MessagesConfiguration> createRequest() {
return new MessagesConfigurationRequest();
}
@Override
public ObjectSetting<MessagesConfigurationModel.MessagesConfiguration> getConfigSetting() {
return Config.MessagesConfiguration;
}
},
new ConfigRequestRepeatingTask<HandsetConfigurationModel.FeatureConfiguration>(this) {
@Override
protected BaseConfigRequest<HandsetConfigurationModel.FeatureConfiguration> createRequest() {
return new FeatureConfigurationRequest();
}
@Override
public ObjectSetting<HandsetConfigurationModel.FeatureConfiguration> getConfigSetting() {
return Config.FeatureConfiguration;
}
},
new ConfigRequestRepeatingTask<FeaturesDetailsModel.FeaturesDetails>(this) {
@Override
protected BaseConfigRequest<FeaturesDetailsModel.FeaturesDetails> createRequest() {
return new FeaturesDetailsRequest();
}
@Override
public ObjectSetting<FeaturesDetailsModel.FeaturesDetails> getConfigSetting() {
return Config.FeaturesDetails;
}
},
new ConfigRequestRepeatingTask<GeoFenceConfigurationModel.GeoFenceConfiguration>(this) {
@Override
protected BaseConfigRequest<GeoFenceConfigurationModel.GeoFenceConfiguration> createRequest() {
return new GeoFenceConfigurationRequest();
}
@Override
public ObjectSetting<GeoFenceConfigurationModel.GeoFenceConfiguration> getConfigSetting() {
return Config.GeoFenceConfiguration;
}
},
...
Вот так мы создаем "очередь" запросов. И это только треть.
Вынесите хотя бы в XML через Spring: все будет читабельнее
Акститесь
> язвы от отсутствия лямбд
Кмк, тут проблема скорее в "гибкой рахитектуре"(tm), которую так любят ваять на ровном месте типичные жаболюбы.
Да, XML это БОЛЬНОСЛОЖНОИНТЕРПРАЙЗНЕНУЖНО, и пофиг что IDE его прекрасно поддерживают. IDE это тоже БОЛЬНОСЛОЖНОИНТЕРПРАЙЗНЕНУЖНО. Писать нужно в блокноте и многобуквенно.
>>которую так любят ваять на ровном месте типичные жаболюбы
Да, фабрика стратегий которую видимо пытался реализовать автор тоже БОЛЬНОСЛОЖНОИНТЕРПРАЙЗНЕНУЖНО. Нужно в сорока местах написать одинаковый "иф"
К сожалению на свете живет огромное количество программистов, не осиливших три основополагающих принципа разработки ПО:
DRY, KISS, YAGNI.
>лямбды
Ясно. Давно болеете?
Щито?
Так пишут не от отсутствия лямбд, а от отсутствия мозга. И неумения основ процедурного программирования.
Пишем метод (ОДИН РАЗ!)
Ваша проблема в том что, есть молоток — лямбды, и всё вокруг стаёт казаться гвоздями. Хотя мне непонятно как тут вообще можно их применить с пользой.
Не пойдёт. Это "что-то" можно сделать и вне метода, и передать результат в create параметром.
Не вижу проблемы.
И похерить всю фабрику стратегий и породить спагетти и говнокод, ок
Ну какие спагетти? Какие ifы? Что вы такое интересное рассказываете?
http://sourcemaking.com/refactoring/replace-conditional-with-polymorphism
Пи уже убежал. Читай тред выше.
Возможно вы имели в виду наблюдателя аля observer?
и т.д.