Предположим в одном из компонентов, в каком-то методе нужно открыть файл. Если делать это через BufferedReader
в блоке try/catch с ресурсами, например, то получается что компонент зависит от BufferedReader
, но ведь не передавать же любую временную переменную не-примитивного типа в конструкторе, чтобы избежать зависимости? Как это красиво "исправить"?
P.S. Надеюсь вопрос ясен
Имхо. Вы можете посмотреть на картину по-другому. Допустим вам нужно открыть файл (прочитать из него текст?). Почему бы не создать что-то вроде FileService и передавать как зависимость его. И метод реализовывать внутри этого сервиса. (ну и конечно же интерфейс создать для методов, которые вам нужны). Тогда мы сможем изменять способ получения данных из файла в самом сервисе, не затрагивая свой класс. Это и будет слабая связанность. С другой стороны Вы не должны бояться зависимости от bufferedReader. Какова вероятность того, что вы его на что-то будете заменять в дальнейшем? BufferedReader всего лишь читает вам файл. Стоит посмотреть на то, что этот ридер Вам даёт. Какую-то информацию? Планируется ли (возможно ли) эту же информацию получать другим путем? Если да, то создайте сервис, который будет эту информацию возвращать, при этом только он сам будет знать, как он её получает. А если у вас информация из файла, и она всегда будет читаться из файла, то не стоит боятся связанности. Мы должны стремиться к наименьшей связанности, а не избавляться от её вообще.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Я никак не понимаю, что я буду делать на работе, выучив джавуНазовите, пожалуйста, примеры программ, к-е на ней чаще пишутся
Столкнулся с проблемой при запуске проекта Spring MVCПосле запуска бесконечное развертывание происходит
Есть четыре классаПервый класс товары