Теперь я читаю Guice's official document. И они говорятНаилучшая практика для модификаторов конструктора в Guice
Как коррекции, просто ограничить видимость обеих ваших реализации классов, и их конструкторы. Обычно пакет частное является предпочтительным для обоих, так как это способствует:
связывания класса в модуле в том же пакете
блок тестирования класса с помощью средств прямого конкретизации
Как простой, мнемонические помните, что public и @Inject подобны эльфам и гномам: они могут работать вместе, но в идеальном мире они будут сосуществовать самостоятельно.
Я знаю, насколько опасно public constructor
, читая документ. И цитируемое предложение представляется решением, но я не уверен в точном значении. Итак, вы могли бы проверить, правильна ли моя мысль или нет.
Во-первых, они говорят, что связывают класс в рамках модуля в том же пакете. Это означает, например, что у вас есть пакет в системе. И хорошо использовать Module
, соответствующий пакету? Итак, в основном у вас одинаковое количество Module
s и столько же пакетов?
Во-вторых, вы можете увидеть модуль тестирования класса с помощью прямого инстанцирования. Это означает, что мы должны выполнять модульное тестирование класса с использованием прямого экземпляра, а не Guice
Module
? Я думаю, что Guice
также полезен для тестирования, особенно для тестирования модулей, как они сказали.
Я немного смущен, может ли кто-нибудь дать мне понять?