Я пишу класс оболочки для SDK устройства, чтобы упростить обработку большого проекта (например, не опечатки строк в getParameter(string parameter)
и упрощение метода, вызывающего нашу цель). У устройства есть некоторые свойства, которые я могу получить и установить, но только в том случае, если устройство подключено (поэтому свойство зависит от поля device
, не имеющего нуля и связанного), и я не могу обернуть вокруг себя, как обращаться с ним , Я читал, что исключение из геттеров может быть плохой идеей. Я могу сделать свойство nullable, но я подозреваю, что проблема скорее в дизайне.Свойство, зависящее от поля
class MyClass
{
private Device device; //SDK device
public string Name
{
get //set is pretty much the same
{
if (!device.IsConnected)
//return null and have nullable property? throw NotConnectedException?
return device.getParameter("Name");
}
}
}
Я могу преобразовать свойства в методы и исключать исключения, но мой наставник предпочел их как свойства. Может ли кто-нибудь указать мне в правильном направлении?
Не уверен, что вы действительно хотите, но вы можете начать с того, что все устройства, зависящие от устройства, работают в одном классе и с обработкой исключений, после чего вы можете сделать свое устройство получения и настройки автономным - кто знает, может быть, вам нужно изменить устройство «на лету» в будущем – serup
String по умолчанию имеет значение NULL. Если вы работаете только со строками, не отправляйте null. – lokusking
Я боюсь, что есть еще несколько свойств, которые также являются ints, double и enums, но хорошее предложение для строковых, спасибо. @serup Вы имеете в виду как обертывание устройства, а также, чтобы моя обертка имела экземпляр devicewrap? – Mattias