Why do we need to use dynamic properties?

8 visualizaciones (últimos 30 días)
fa wu
fa wu el 5 de Sept. de 2023
Comentada: fa wu el 7 de Sept. de 2023
Why do we need to use dynamic properties? In what situations must we use dynamic properties? What value do they bring? If I must add a property, why not add it within the class instead of adding a dynamic property to the object?
The book I'm reading provides examples of dynamic properties, but I find that they seem to function like regular variables. Furthermore, it seems like this program can achieve its goals without dynamic properties. Please take a look at the code below.
classdef MyButton < dynamicprops
properties
UiHandle
end
methods
function obj = MyButton(pos)
if nargin > 0
if length(pos) == 4
obj.UiHandle = uicontrol('Position',pos,...
'Style','pushbutton');
else
error('Improper position')
end
end
end
end
end
The book instructs to execute the following commands.
hbutton1 = MyButton ([20 40 100 40]);
addprop(hbutton1,'Caption');
hbutton1.Caption='OK';
set(hbutton1.UiHandle,'String',hbutton1.Caption)
However, I found that removing dynamic properties does not affect the outcome.
hbutton1 = MyButton ([20 40 100 40]);
hbutton1.UiHandle.String='OK'
  9 comentarios
fa wu
fa wu el 6 de Sept. de 2023
@Stephen23 I feel that you must have appreciated the advantages of dynamic properties. I'm looking forward to you providing a formal answer with example code.
fa wu
fa wu el 7 de Sept. de 2023
@Stephen23 Does this example fit the situation you mentioned? -------“I often create GUIs where objects (uicontrols, axes, etc) get switched between various states (particularly visibility, view, string, etc) depending on other menu/data selections).”

Iniciar sesión para comentar.

Respuestas (1)

Matt J
Matt J el 6 de Sept. de 2023
They are a convenience, not a requirement. From the documentation:
Use dynamic properties to attach temporary data to objects or to assign data that you want to associate with an instance of a class, but not all objects of that class.
  4 comentarios
fa wu
fa wu el 6 de Sept. de 2023
Why doubt it--------I don't doubt, I don't undstand.
"Use dynamic properties to attach temporary data to objects or to assign data that you want to associate with an instance of a class, but not all objects of that class."--------It tell me How,don't tell me Why.
Matt J
Matt J el 6 de Sept. de 2023
Well, like I said, it's just so that you can attach data to an object without cluttering the classdef with additional properties that you're only going to use for one application. I don't think there's any more to it than that.

Iniciar sesión para comentar.

Categorías

Más información sobre Software Development Tools en Help Center y File Exchange.

Productos


Versión

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by