Я не могу понять один важный аспект разработки программного обеспечения Android, с которого я только начинаю, из того, что я знаю, был разработан дизайн Fragment
, чтобы развязать код, где интуиция заключается в том, что Activity
остается как есть, а Fragment
может быть повторно использовано иначе, где, возможно, даже в другой деятельности или, возможно, вдоль других фрагментов, в чем-то вроде потока Master/Detail или ландшафтного интерфейса.
Хорошо, поэтому я видел довольно много вопросов о SO, спрашивающих, почему Fragments
помещаются как статические внутренние классы внутри Activity
, и ответ заключается в том, что если мы не сделаем их статичными, Fragment
может содержать ссылку на активность и что-то вроде поворота экрана, или повторная ничья может привести к утечке активности или чего-то еще.
Это возвращает меня к квадрату, и у меня возникает вопрос, что, если проект Fragment был принят для того, чтобы отделить код, то почему мы выходим замуж за Fragment
за Activity
, помещая его внутри класса активности и не ставить их как самостоятельные публичные классы? Разве это не противоречит самому существованию Фрагментов?
Какова нижняя сторона структуры проекта как таковой? Где каждый Fragment
является отдельным классом? Учитывая, что мой код фрагмента может вырасти до 1000 строк, особенно при попытке сделать анимацию, я вижу, что это намного более аккуратно, развязано и многократно используется в других действиях, кроме предполагаемой родительской активности.
- Неужели мы все еще страдаем от проблемы утечки памяти, упомянутой выше?
- Мне что-то не хватает в логике дизайна? Пожалуйста, просветите меня.
- Есть ли способ, когда фрагменты остаются внутренним классом и все еще используются в другом месте? Возможно, мне тоже что-то не хватает... так что сообщите мне.
Любые другие методы проектирования, концепции, поправки к моей интуиции более чем приветствуются, так как я только начинаю здесь, мне бы хотелось узнать все мои варианты.
Спасибо:)