У меня есть два класса под названием Data и A. Класс A - это в основном набор функций, которые управляют данными в Data. Теперь мне нужно, чтобы A получил доступ ко всем данным в Data. Я знаю два способа сделать это.класс, мутирующий данные другого класса
Я могу передать ссылку данных в A, но тогда мне всегда приходится писать префикс «Данные». который, я думаю, действительно раздражает, и в любом случае нет никакой двусмысленности.
Я могу сделать A суперкласс данных. Но некоторые методы в A вызывают другой класс B, который также мутирует класс Data, и в этом подходе я не уверен, как это можно сделать.
Так что мой вопрос: есть ли другой способ для доступа к данным в Data, которые были бы более подходящими?
Из того, что вы описываете, кажется, вы разделили класс на два: один хранит данные, другой содержит код который работает с данными. В ООП данные и код, которые его обрабатывают, относятся к одному классу. – axiac
Но пара классов работает с данными, и все, что помещается в один огромный класс, кажется мне неправильным. – user3726947
Если класс огромен, вы можете сказать, что он действительно соблюдает [принцип единой ответственности] (https://en.wikipedia.org/wiki/Single_responsibility_principle)? Возможно, ключ состоит в том, чтобы разбить функциональность на несколько классов, а не передавать функции в другой класс. Проверьте [SOLID] (https://en.wikipedia.org/wiki/SOLID_ (object-oriented_design)) и посмотрите некоторые [дяди bob vids] (https://www.youtube.com/results?search_query=uncle+ bob + martin) на youtube. –