【发布时间】:2020-12-11 10:21:46
【问题描述】:
我想找到一种方法在 MATLAB 中获取对象实例的名称,并在 MATLAB R2019b 中将其返回。
所以在 Launcher 构造函数中定义这样的实例
Properties
TorqueViewComponent
SpeedViewComponent
end
methods
function obj = Launcher()
TorqueViewComponent = GraphView(args...);
SpeedViewComponent = GraphView(args...);
end
end
然后在图形视图对象构造函数中类似于
function obj = GraphView(args...)
if strcmp(object name, 'TorqueViewComponent')
do some things;
elseif strcmp(object name, 'SpeedViewComponent')
do some other things;
end
end
本质上,我有多个 GraphView 对象实例,我想根据实例名称绘制不同的数据集。
如果您有任何问题,请告诉我,我可以更详细地解决问题
【问题讨论】:
-
即使有,这也是非常糟糕的设计。您最好将名称作为参数传递。更不用说,如果你真的想让你的 GraphView 类做两个不同的事情,那么它应该是两个不同的类(如果你想要一个接口,你可以将它们包装在一个“调度程序”类中)。看看SOLID principle
-
“做一些事情”和“做一些其他事情”部分可能有点误导,做不同的事情只是意味着正在绘制 ylabel、title 和 y 轴数据,这些图表是除此之外,被创建是相同的。所以例如做一些事情是 ylabel(obj.Axes, 'Torque [Nm]');标题(“扭矩”);然后做一些其他的事情是 ylabel(obj.Axes, 'Speed [rpm]');标题('速度');。