Повышается ли DTO / POJO до квалификации настраиваемой службы в OSGi / DS? - PullRequest
0 голосов
/ 31 января 2019

Примечание. Это первый вопрос из серии вопросов, которые у меня возникнут. Все они относятся к одной и той же среде.

В настоящее время я использую службу ConfigurationAdmin в качествемеханизм сохранения конфигурации, тупой держатель данных и удобный пакетный апдейт.Это неправильно, поэтому я пытаюсь сделать его более правильным.

Я пишу игру, в которой все должно настраиваться во время выполнения.Это привело меня к маршруту ConfigurationAdmin для соединения вещей.

Игра по своей природе ничего не делает, и вместо этого функциональность обеспечивается сочетанием доступных комплектов.

Один комплектвводит понятие видов.Чтобы поддерживать как можно более высокую степень гибкости, Spec на самом деле является просто именем.

@Component(...)
@Designate(...)
class Species {

    lateinit var name: String

    @Activate
    fun activate(config: SpeciesConfig) {
        name = config.name
    }
}

Все дополнительные функции, относящиеся к Species, должны предоставляться отдельным пакетом.Например, другой пакет вводит понятие покемона.Покемон - это просто член Видов, точно так же, как люди являются членами вида Homo Sapiens Sapiens.

@Component(...)
class Pokemon {

    @Reference
    lateinit var species: Species
}

Я использовал Декларативные услуги (DS) для автоматической установки ссылки species.

Здесь, однако, вы можете увидеть, что ни Species, ни Pokemon на самом деле не являются услугами, скорее Species - это имя и постоянная идентификация, а Pokemon - это постоянная идентификация и ссылка наSpecies.Единственные методы, которые могут быть реализованы для этих классов, - это обычные hashCode, toString и equals.

. Это осознание того, что сначала подсказало мне, что, возможно, ConfigurationAdmin не является правильным инструментом;что, возможно, SpeciesRepository или PokemonRepository могут лучше подходить для работы по сохранению конфигурации.

Вопрос: Поднимаются ли DTO / POJO, такие как Виды, на квалификацию службы,определенные OSGi / DS, учитывая, что может быть от десятков до тысяч определенных видов, но ни один, ни один, многие или все они доступны во время выполнения?

РЕДАКТИРОВАТЬ: я заметил, что Питер Криенс сказал в другой вопрос

Ну, в мире OSGi все выглядит довольно просто и понятно: каждый объект является компонентом.Так что в мире, отличном от OSGi, вам нужен какой-нибудь DI-движок для впрыска.

Может быть, все в порядке, если такие маленькие компоненты будут?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...