как разработчик приложения хранит приложения (специфические для моего сервера, конечные точки пути и т.д.) глобальные и настраивает конкретные значения конфигурации в приложении для Android? Кроме того, возможно ли иметь переопределения? то есть. Я хочу установить значение по умолчанию в моем файле global.config, но коллизии в stage-build-variant.config и prod-build-variant.config должны переопределить это, в то время как dev-build-variant.config будет просто использовать значение по умолчанию. я читал о SharedPreferences, но это похоже на то, чтобы хранить вход пользователя во время выполнения для последующих запусков, и я читал о людях, использующих класс для хранения констант, но это не совсем подходит, поскольку я не получаю никакой пользы от определенные значения конфигурации, перекрывающие общие. есть также много, казалось бы, устаревших статей, которые я не уверен точно. Я спросил это как комментарий в этом вопросе, который, кажется, близок к тому, что я ищу, но думал, что я спрошу, как вопрос для большей экспозиции. EDIT: возможно, я объяснил это плохо — уточнить, этот комментарий.
Android — Юнит-тесты для бизнес-логики
спросил(а) 2016-06-10T21:38:00+03:00 6 лет, 11 месяцев назад
Источник: progi.pro
Что такое бизнес-логика в чистой архитектуре (домен)
Люди говорят, что бизнес-логика должна обрабатываться на уровне домена.
Но я не совсем понимаю, что такое бизнес-логика в Android.
В моем проекте я кэширую данные, когда запрос API выполнен успешно.
И если запрос API не удался, получите локальные данные.
Насколько я понимаю, это может быть своего рода бизнес-правило.
1. Запрос API
2. Если запрос API не удался, загрузите данные с локального.
Думаю, эту логику нужно делать в репозитории.
Но бизнес-логика должна обрабатываться на уровне домена.
Я неправильно понимаю бизнес-логику?
김도훈 23 Дек 2019 в 11:29
1 ответ
Лучший ответ
Бизнес-логика ссылается на if и else , которые есть у вас после получения данных из API. Допустим, вы хотите загрузить изображение, используя Picasso . URL-адрес:
Но сначала вам нужно получить этот объект с идентификатором, прикрепленным к его JSON:
Ну, во-первых, вам нужно получить это:
val request = repository.fetchTheObject() //let’s assume the result is successful //start of the business logic val imageId = request.id if(id == WHATEVER)< val url = «someUrl/$.jpg» someMutableLiveData.postValue(url) >else < showSomeError() >//end of business logic
И тогда в вашем фрагменте вы просто получите конечный результат:
viewModel.someMutableLiveData.observe(this, Observer< Picasso.get().load(it).into(imageView) >)
Бизнес-логика — это все действия, которые необходимо выполнить с данными, которые вы получаете от источника правды (базы данных, файлов, сетевого API и т. Д.), Чтобы достичь желаемого результата.
Что такое бизнес-логика и как ее изолировать
В случае Android:
- Fragment / Activity для взаимодействия с пользователем
- ViewModel для бизнес-логики (иногда, когда у вас есть тоны if s / else , много циклов for и т. Д., Google предлагает использовать Presenter, присоединенный к ViewModel, никогда не делал этого )
- Репозиторий, просто источник для получения данных (хотя иногда это избыточно, например, когда у вас есть только один источник правды)
В вашем случае бизнес-логика — это именно то, что вы описываете: если ваш запрос не выполнен, получите локальные данные, это бизнес-логика приложения.
Я думаю, что эта логика должна быть сделана в хранилище.
Ну, вы можете сделать это, и я видел много таких примеров, и это действительно зависит, иногда может быть правильным. Но в случае, когда вы используете ViewModel , чтобы избежать всех Transformations , вы можете просто обработать его в ViewModel вместо Repository .
Источник: question-it.com
Определение бизнес-логики и логики приложения в MVC/OOP
Обычно вы должны поместить всю бизнес-логику, в том числе для форматирования и проверки, в модель. Таким образом, не ввод отрицательного числа является фокусом для модели, а не для контроллера. Следить за публикациями Тощий контроллер, толстая модель и, возможно, шаблон ведущего с использованием драпировщик. Райан Бэйтс недавно рассказал об этом довольно много на Railscasts. Наверное, это тоже хорошо бы посмотреть.
Бизнес-логика означает правила, которые не могут нарушать ваш бизнес-процесс. Последние два примера, которые вы приводите, относятся к бизнес-логике, потому что эти правила зависят от бизнеса, а не от приложения.
Логика приложения — это логика, не связанная с бизнесом. Например, убедитесь, что первые два правила соблюдаются, потому что они нарушат вторые два правила, которые вы указали.
Мои 2 цента в любом случае.
Так что да, вы на правильном пути.
Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками php oop model-view-controller or задайте свой вопрос.
Источник: stackovergo.com