Зависимое наблюдаемое свойство в Matlab. Это работает?

В классе Matlab кажется синтаксически правильным объявить свойство , которое является зависимым(вычисляются не сохраненные )и наблюдаемые одновременно. Рассмотрим код

properties (Access = private)
    instanceOfAnotherClass
end
properties (SetAccess = private, Dependent, SetObservable)
    propertyTwo
end
methods
    function val = get.propertyTwo(this)
        val = this.instanceOfAnotherClass.propertyOne;   
    end
end

Это работает так, как ожидалось? То есть, если свойство propertyOneобъекта, хранящегося в instanceOfAnotherClass, изменяется, есть ли событие изменения свойства, вызванное propertyTwo? Обратите внимание, что propertyOneне является Observable .

Изменить: Это не работает (, как я ожидал ). Событие PostSet не запускается. Итак, как мне поступить в такой ситуации? Есть ли лучшее решение, чем создать propertyTwoкак независимую и установить для него то же значение, что и для свойства One, каждый раз, когда изменяется значение свойства One?

Редактировать2: В ответ на заявление Амроредактирование его ответа Я объясню ситуацию более сложной. Рассмотрим это 2 класса:

 classdef AClass < handle
     properties
         a
     end
 end
 classdef BClass < handle
     properties (Access = private)
         aClassInst
     end
     properties (Dependent, SetObservable, SetAccess = private)
         b
     end
     methods
         function this = BClass(aClass)
             this.aClassInst = aClass;
         end
         function val = get.b(this)
             val = this.aClassInst.a;
         end
     end
 end

Класс, использующий весь этот код, не должен получать доступ к AClass. Он взаимодействует только с экземпляром BClassи хочет прослушивать изменения свойства b. однако, если я сделаю свойство aиз AClassнаблюдаемым, это не решит мою проблему, не так ли? События «PostSet» не будут распространяться на свойство b, не так ли?

6
задан Community 23 May 2017 в 12:21
поделиться