(Возможно, я преувеличиваю довольно простую вещь, но тем не менее.)
У меня есть элемент управления GUI с общедоступным свойством, которое содержит его текущее значение. Значение можно изменить изнутри разными способами — элемент управления довольно сложный, а также имеет дочерние элементы с разным поведением. При каждом таком изменении должен воспроизводиться звук и запускаться событие.
С другой стороны, его можно изменить извне с помощью логических элементов; в этом случае все компоненты графического интерфейса должны быть обновлены, но звук не должен воспроизводиться.
Итак, по сути, мне нужно использовать два сеттера: один для внутреннего использования и один для внешнего. Как лучше всего это реализовать, чтобы код был читабельным, а будущие сопровождающие случайно не перепутали их? (Очевидно, что они не смогут использовать приватный сеттер, когда им следует использовать общедоступный, но наоборот это может сбить с толку).
(В настоящее время я использую C#, но не думаю, что в этом вопросе есть что-то специфичное для языка, поэтому я опускаю этот тег.)