Если класс имеет конструктор, который принимает некоторый объект значения в качестве параметра и полагается на это для его инициализации. Как он должен реагировать, если этот объект равен нулю?
class SomeClass
{
private SomeData _data;
public SomeClass(SomeValueObject obj)
{
_data = obj.Data;
}
}
Это один из примеров, но в целом: как должен работать конструктор, если ему заданы недопустимые параметры и, следовательно, он не может правильно построить конструкцию? Должен ли он просто вернуться без инициализации? Задайте параметры для некоторых значений по умолчанию? Выбросить исключение? Что-то другое?
Я уверен, что ответ на этот вопрос: "Это зависит", но есть ли какие-либо лучшие практики и т.д.?