Можно ли, из экземпляра класса иметь ссылку на его родителя и пользоваться им? Нужен совет по ООП. Есть основной класс в котором скопилось очень много кода, хочу его разгрузить, то есть разбить по возможности на отдельные классы. Допустим, у меня есть логический кусок, который я выношу в отдельный класс, но в нем достаточно часто используются члены главного класса. И появляется проблема выбора способа доступа к этим членам. Для решения рассматриваю такие варианты:в доп. классе создать используемые переменные, и в конструкторе часть из них инициализировать, часть из них передавать аргументами в нужный метод (какую проблему вижу) повторный код, большой список аргументов (конструктор/метод)в конструкторе доп. класса объявить параметр типа родительского класса, и при создании объекта доп. класса передавать в конструктор this (то есть мы будем получать ссылку на родителя) и по этой родительской ссылке юзать нужные поля (какую проблему вижу) На сколько я знаю, считается плохой практикой передавать ссылку на родителя в объекты. Экземпляр ничего не должен знать что происходит вверх по иерархии, манипуляции идут Только вниз по иерархии. Правильно? Не вариант этот кусок кода оставлять на месте. Работать будет и так и так, но как сделать лучше? I need to best practices.
В данной ситуации наиболее правильным и рекомендуемым способом будет передача необходимых данных в качестве параметров методов дополнительного класса, а не передача ссылки на родителя.
Подход с передачей ссылки на родителя может привести к ненужной зависимости дополнительного класса от основного класса, что усложнит рефакторинг кода и его поддержку в будущем. Кроме того, это может привести к ошибкам в поддержании однозначного состояния объекта, если основной класс изменится, и дополнительному классу придется держать за него ответственность.
Поэтому, рекомендуется избегать передачи ссылки на родителя в дополнительный класс и использовать передачу параметров методам для получения необходимых данных. Это позволит сохранить чистоту кода, упростит его понимание и поддержку в дальнейшем.
В данной ситуации наиболее правильным и рекомендуемым способом будет передача необходимых данных в качестве параметров методов дополнительного класса, а не передача ссылки на родителя.
Подход с передачей ссылки на родителя может привести к ненужной зависимости дополнительного класса от основного класса, что усложнит рефакторинг кода и его поддержку в будущем. Кроме того, это может привести к ошибкам в поддержании однозначного состояния объекта, если основной класс изменится, и дополнительному классу придется держать за него ответственность.
Поэтому, рекомендуется избегать передачи ссылки на родителя в дополнительный класс и использовать передачу параметров методам для получения необходимых данных. Это позволит сохранить чистоту кода, упростит его понимание и поддержку в дальнейшем.