Запретить модифицировать класс из вне
Есть класс A. Хочу, чтобы этот класс А мог быть модифирован только через класс, который реализует интерфейс B. Вынести логику в отдельный класс грубо говоря.
Ну типа вот так:
B.Modify(A)
Но тут возникает проблема с доступом к приватным сеттерам полям.
Есть так же мысля, делать так:
var a = new A(B);
a.Modyfy();
Т.е внутрь передавать зависимость, а сам класс делегирует рассчеты реализации интерфейсу.
Как вообще лучше и какие варианты еще есть?
Говоря простым языком:
Сейчас у меня в проекте есть мега-класс, где очень много логики. Хотелось бы его отрефакторить в несколько присестов. Допустим, данные в начале я не трогаю, но выношу методы в разные сущности. Затем уже, смотря на то, что получилось, возможно, разобью класс и по данным.