Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ServiceParamsProvider - поддержать синглетоны по параметрам #4

Open
ProVir opened this issue Jan 8, 2021 · 0 comments
Labels
enhancement New feature or request optional May not be solved

Comments

@ProVir
Copy link
Owner

ProVir commented Jan 8, 2021

Может быть такой кейс (есть в Example):
Нужен сервис синглетон с получением по параметрам, экземпляров может быть несколько.
На каждый параметр может быть создано не больше одного сервиса.
atOne не доступен - сервис создается только по первому требованию (зависим от параметра же), но может быть lazy (обычный) и weak.

Параметры должны быть Hashable, фабрика имеет отдельный тип (на примере как у ServiceSessionFactory).

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

Как решение - по созданию возвращается менеджер провайдера - через него можно очищать неликвидные сервисы либо все.
Но в том же Example есть зависимость в фабрике от UserService - очистка при смене статуса. Возможно этот менеджер должен быть доступен и в самой фабрике чтобы реализовать такую возможность.

Необходимость в таком решении под вопросом - возможно это редкий корнер кейс и можно его решить другими способами, как к примеру в Example.

Требуется голосование за или против.

@ProVir ProVir added enhancement New feature or request optional May not be solved labels Jan 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request optional May not be solved
Projects
None yet
Development

No branches or pull requests

1 participant