Здравствуйте, Miroff, Вы писали:
M>Создаем два класса: класс А и класс В. Требуется сделать так, чтобы объекты класса А могли изменять состояние только в результате запросов объектов класса В и никак иначе. (Например: "остаток на складе может изменяться только документами") Подскажите, как это лучше реализовать с архитектурной точки зрения.
Попробую уточнить постановку задачи. Изменяющих классов может быть много. Изменяемых тоже. А вопрос о правомерности изменения выносится на этап RunTime. При этом классы могут быть семантически различныим. ИМХО порождать их от общего предка или через общую фабрику — криво. Я думаю ввести класс посредник, который будет решать, разрешено воздействие или нет. Но может есть другое решение? Observer и State это немного не то.