предисловие:
У меня есть компонент, давайте назовем его IView. Этот компонент реализован классом BaseView, который содержит большую часть его функциональных возможностей. Мы используем шаблон шаблона, чтобы делегировать логику наследующим классам.
Проблема:
У нас есть свойство с именем IView.Visible, которое указывает, должен ли компонент быть видимым или нет. Это свойство не является виртуальным , поскольку оно включает некоторую логику в нашем BaseView.
Мы создали виртуальный защищенный метод IsVisible , который вызывается из BaseView.Visible для определения окончательного значения IView.Visible.
Мы считаем, что это имя свойства, IsVisible, не является описательным и достаточно понятным для разработчика производного класса.
Было предложено переименовать его в ShouldBeVisible, но мы все же заполняем, что есть лучшее имя.
Что ты думаешь? У тебя есть лучшее имя? Есть хорошее соглашение об именах, которое охватывает эту тему методов шаблона?
Обновление: Просто чтобы прояснить ситуацию, свойства Visible и IsVisible не оказывают побочного эффекта на компонент, свойство Visible использует значение из IsVisible, чтобы решить, должно ли значение Visible быть истинным , но это не единственное соображение и пара других внутренних состояний компонента, чтобы дать окончательный вердикт.