Рассмотрим программу, по сути, такую:
Классы A, B и C логически сочетаются в отношениях родитель / потомок и никогда не раскрывают свои личные свойства. Программа будет иметь смысл (и будет компилироваться и запускаться) только с этими тремя компонентами. Однако для того, чтобы программа была особенно полезной, пользователь должен иметь возможность изменять все свойства во время работы программы, следовательно, объект «control», который может быть, например, Windows Form. Элемент управления следует рассматривать как своего рода фантом: он должен иметь возможность изменять свойства, но в отношении остальной части программы его не существует. Проблема в том, что я не знаю, как это сделать, не изменив фундаментальную структуру основной программы (по сути, сделав все свойства открытыми).
Так что мой вопрос действительно на общем уровне программирования: есть ли название для такой структуры, и если да, то как это достигается? Если нет, то есть ли лучший подход к тому, что я пытаюсь сделать?
Редактировать: Поскольку решение может зависеть от языка, предположим, что базовая программа полностью кроссплатформенная c ++, а элемент управления представляет собой некоторый тип GUI, запрограммированный для любой конкретной платформы.
Я думаю, что вы ищете Шаблон публикации-подписки
В большинстве случаев ваши свойства должны быть закрытыми, и при необходимости вы должны предоставлять методы получения / установки.
Других решений пока нет …