Здравствуйте, ZegSoft, Вы писали:
ZS>Если я правильно понял, то такая ситуация называется "инкапсуляция". Реализуется очень просто: делаешь закрытыми все свойства объекта, а доступ и изменение к ним осуществляешь через функции. Общепринятыми для этих целей считаются функции под именами put/get. Но можно применять и любые другие, главное сам не запутайся. Если проводить анологию с БД, то такие функции в неготором роде можно назвать тригерами. Соответственно в этой функции анализируешь новое значение и на его основе присваиваешь остальным свойствам нужные значения.
Вы правильно поняли.
Получается в каком либо ,напр., входном интерфейсе get(xtype inX), достаточно правильно обработать
получение параметра inX для инкапсулированного св-ва X со всеми вытекающими последствиями (установка "нужных" значений зависимых свойств XA, XB, XC).
Но достаточно ли только этого? У Страутрупа в таких ситуациях применяется понятие инварианта, и всяческих сопуствующих ему
проверок\установок (собственно это немного и сбило с толку

) Хотелось бы прояснить это.