Обработайте входные изменения спецификации

Этот пример показывает, как управлять входными спецификациями для Системы 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

 Полный файл определения класса

Смотрите также

Похожие темы