MVC для настольного приложения без слоя данных

Один из способов сделать это - использовать Observable.zip()

В вашем случае это будет примерно так:

Observable.zip( request1, request2.doOnError(//show error here), BiFunction{response1, response2 -> new CombinedResponses(response1, response2)}).subscribe(new Observer{...})

Если вам нужна дополнительная информация, вы можете всегда изучайте документацию

5
задан Bill the Lizard 26 September 2012 в 00:12
поделиться

2 ответа

Из моего понимания MVC вторая версия больше похожа на строгая парадигма MVC. Тем не менее, один из моих очень умных учителей однажды сказал мне, что шаблоны проектирования предназначены для того, чтобы дать свободный набор руководящих принципов и не обязательно должны соблюдаться T.

На мой взгляд, сочетание обоих является хорошим идея. Если какая-то логика заканчивается в модели, это не конец света, это просто означает, что вы должны быть более осторожными в отслеживании разделения ваших компонентов. Если небольшая модификация MVC сделает вашу жизнь проще на 50% (меньше накладных расходов на сообщения), то это, вероятно, хорошая идея.

2
ответ дан 15 December 2019 в 06:35
поделиться

Я бы определенно подошел к чему-то ближе ко второй реализации. Да, кажется, что все больше сообщений передается взад и вперед, но если ваше приложение будет расти и изменяться, вы будете рады, что вы создали приложение с небольшими классами.

Подумайте: где логика для решения таких рутинных задач, как переключение между алгоритмами, их выполнение и обработка данных для просмотра?

Генетические алгоритмы работают с некими входными или исходными данными, не так ли? Вы получите это из слоя доступа к данным. Вам не нужны начальные данные или условия инициализации? Как насчет сохранения ваших результатов в файл и получения их для последующего просмотра? Я думаю, что вам нужно сделать это, когда ваше приложение созревает. Ожидайте, что сначала вы будете использовать постоянство на основе файлов. Если ты' Если вы готовы, позже вы можете перейти на базу данных. Если вы создаете код на уровне абстрагированных персистентных данных, вам больше не придется менять бизнес-логику, чтобы поддержать переход от файла к базе данных.

Вам следует использовать шаблон стратегии для реализации ваших алгоритмов. Это позволит вам изменить реализацию вашего решателя с генетического алгоритма на другие ваши алгоритмы без необходимости менять бизнес-логику для каждого алгоритма.

Бизнес-уровень увидит ISolver, который принимает входные данные, и вы вызовете mySolver.Solve (). Вы должны иметь возможность переключаться между различными версиями, не меняя логику своего бизнес-уровня ( Открытый закрытый принцип ). Единственное различие в том, как бизнес-логика должна взаимодействовать с алгоритмами, должно быть в конструкторе, и даже там,

1
ответ дан 15 December 2019 в 06:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: