Я работаю над каким-то проектом на C # и столкнулся со следующей проблемой:
У меня есть несколько классов типов данных, например, класс Person, который хранит информацию о человеке.
Кроме того, у меня есть класс DataManager, который отвечает за управление людьми в моей программе.Если вы хотите добавить, получить, найти или удалить человека, вы можете сделать это только через класс DataManager.
Проблема в том, что я не хочу, чтобы кто-либо, кроме класса DataManager, мог изменятьЧеловек возражает.Например, если кто-то вызывает DataManager.getPerson(int ID)
, он получит объект Person и сможет использовать функции установки этого объекта Person для изменения его содержимого (имя, фамилия, идентификатор и т. Д.).
Я хочу избежать этого.Я хочу, чтобы только класс DataManager мог изменять объекты Person (с помощью таких методов, как DataManager.changeFirstNameForPerson(int ID, string name)
).
Какова лучшая структура класса, которая может достичь этого?