Задать вопрос
Ответы пользователя по тегу Java
  • Классы и методы в разных пакетах, должны быть PUBLIC?

    TanVD
    @TanVD
    Джуниор C++/QT
    Судя по всему вы построили слишком сильно-связанный код. При разнесении в разные пакеты вы столкнулись с ситуацией, что всякий класс взаимодействует со всяким другим классом и соответственно всё должно быть Public. Правильным решением в таком случае является уменьшение связанности кода, например, с помощью паттерна ООП фасад. То есть, для уменьшения связанности кода вам необходимо разбить код на группы по функциональности и через фасад предоставлять необходимую функциональность одной группе другой группе.
    К примеру, вы можете создать группу классов работы с сетью, группы разных видов бизнес-логики, группу классов графического интерфейса.
    Фактически, вы будете проводить декомпозицию монолитного куска кода на кластеры по некоторой логике. Это задача довольно нетривиальна, однако она как раз позволит верно инкапсулировать логику в пакеты и создать к ним адекватные интерфейсы с помощью фасадов. В результате вы сможете скрыть сложность внутренней логики за фасадами и даже впоследствии вынести некоторые классы в библиотеки.
    Ответ написан
    Комментировать