Внедрение object
не имеет особого смысла, поскольку в kotlin object
используется для имитации утилиты java classes
, такой как java * Arrays
или Collections
classes
. Одной из определяющих характеристик c таких классов является то, что они не связаны с какими-либо указанными c class
в вашем проекте, их можно требовать и использовать где угодно.
С другой стороны, в большинстве практических Ситуация repository
будет связана с указанным c class
. Например, вы можете захотеть ввести UserRepository
только в UserViewModel
, потому что это единственное место, где вам нужен доступ к информации пользователя.
Что касается object
и @Singleton
, object
по определению является singleton
, поэтому пометка его @Singleton
является избыточной и ничего не делает sh, пока вы не сделаете ее инъекционной с помощью @Provides
function
. где вы должны указать, как кинжал может создать instances
этого класса?
В вашем первом примере маркировка класса @Singleton
ничего не делает, если только он не является инъекционным. как состояние документов с @ Singleton . График будет использовать один экземпляр значения для всех своих клиентов.