Этот пример показывает, как управлять входными спецификациями для Системы object™. Можно управлять тем, что происходит, когда входная спецификация изменяется.
Можно также ограничить, могут ли входная сложность, тип данных или размер измениться, в то время как объект используется. Какой бы ни аспекты, которые вы ограничиваете, не могут измениться, пока пользователь не вызывает release
.
Изменить алгоритм Системного объекта или свойства, когда входной размер изменений, тип данных или сложность, реализует метод processInputSpecificationChangeImpl
. Задайте действия, чтобы взять, когда входная спецификация изменится между вызовами Системного объекта.
В этом примере processInputSpecificationChangeImpl
изменяет свойство isComplex
, когда любой входной параметр является комплексным.
properties(Access = private, Logical) isComplex = false; end methods (Access = protected) function processInputSpecificationChangeImpl(obj,input1,input2) if(isreal(input1) && isreal(input2)) obj.isComplex = false; else obj.isComplex = true; end end end
Чтобы указать, что входная сложность, тип данных и размер не могут измениться, в то время как Системный объект используется, реализуйте isInputComplexityMutableImpl
, isInputDataTypeMutableImpl
и методы isInputSizeMutableImpl
, чтобы возвратить false
. Если вы хотите ограничить только некоторые аспекты входного параметра Системного объекта, можно включать только один или два из этих методов.
methods (Access = protected) function flag = isInputComplexityMutableImpl(~,~) flag = false; end function flag = isInputSizeDataTypeImpl(~,~) flag = false; end function flag = isInputSizeMutableImpl(~,~) flag = false; end end