Я слышал, что нецелесообразно выбрасывать исключения из свойств getters, и я понимаю причины этого обоснования. Однако следующая ситуация озадачивает меня: Представьте, что вы пишете фасад означало адаптироваться к нескольким различным платформам:Throwing NotSupportedException from Property Getters
public interface IFacade
{
int SomeProperty { get; set; }
}
Теперь представьте эту платформу X
и Y
поддержку SomeProperty
изначально, но эта платформа Z
не делает. Не следует ли выбрасывать NotSupportedException
с геттера в платформу. Z
. Адаптер - это правильный способ сообщить пользователям, что функциональность не поддерживается в конкретном случае этой платформы?
Это прекрасно. Учитывая, что это интерфейс, вы хотите сначала сказать программисту. –