Asignar dinámicamente el captador para una propiedad dependiente en MATLAB
En Matlab, puedo definir una clase como tal:
classdef klass < handle
properties(Dependent)
prop
end
end
Matlab es perfectamente feliz al crear una instancia de un objeto de esta clase, incluso sin definir un captador paraprop
. Solo falla cuando intento acceder a él (comprensiblemente). Me gustaría configurar elGetMethod
Basado dinámicamente en el nombre de la propiedad.
Desafortunadamente, incluso cuando la propiedad es Dependiente, elmeta.property
campo paraGetMethod
todavía es de sólo lectura. Y mientras se hereda dedynamicprops
podría permitirañadiendo una propiedad y establecer su GetMethod mediante programación en cada instancia, no creo que pueda usarse para cambiar una propiedad existente. Puede que tenga que seguir esta ruta, pero comoprop
debe existe para cada objeto que prefiero simplemente establecer el captador en una base de clase por clase. ¿Es posible tal cosa?
Una solución alternativa podría ser a través de algún tipo de método catch-all. En otros idiomas, esto podría lograrse a través de un tipo de rubímethod_missing
o un tipo de PHP__get()
. Pero por lo que sé, no hay análogo (documentado o no) en Matlab.
(Mi caso de uso: esta clase es heredada por muchas subclases definidas por el usuario, y se accede a todas sus propiedades dependientes de manera similar, cambiando solo según el nombre de la propiedad. En lugar de pedir a los usuarios que escribanget.*
métodos que envuelven una llamada al código común para todas y cada una de sus propiedades dependientes, me gustaría establecerlas todas dinámicamente con punteros de función anónima que contengan los metadatos necesarios).