将MLAPP (AppDesigner)应用程序与其他类配对
13次意见(过去30天)
显示旧的注释
我目前正在构建一个面向对象的系统,该系统将医学成像数据分组在一起进行处理。我希望使系统非常易于使用,所以gui是一个有吸引力的下一步。
我可以将GUI(特别是在AppDesigner中设计的mlapp)与我现有的类结构配对以允许GUI对象调用不同的成员函数的最佳方法是什么?
例子:
Class1(顶级分组类,其中存储了一个Class2对象数组)
Class2(二级分组类,其中存储了一个Class3对象数组)
Class3(低级数据类,包含实际的医学影像数据)
我想初始化所有对象(从Class1开始),然后能够使用GUI选择一个Class2(一组Class3对象)或一个单独的Class3对象,然后对它执行处理功能(例如,选择一个数据集,点击一些按钮,进行处理)。我知道回调是如何工作的,但是我很好奇在我的Class1中实例化的GUI对象和其他对象之间共享数据的最好方法是什么。
答案(1)
克里斯门户
2018年6月17日
这是我的做法:
- 使用应用程序窗口的StartupFcn回调初始化所有的Class1, Class2和Class3对象。
- 将Class1实例保存为应用程序的一个属性,类似于“MyMedicalData”。
- 同样在这个回调中,填充任何UI组件(下拉列表、树等),您将用于表示和选择单独的Class2和Class3对象。
- 配置UI组件的回调,用于通过创建的app属性访问所需的适当类对象。比如app。mymedicaldata。getarrayofclass2objects。
(注意,我假设你的Class1定义有某种类型的GetArrayOfClass2Objects属性或方法来导航你的内部数据结构。)
3评论
诺亚格里菲思
2021年7月27日
@Alexander科克伦
据我所知,在构造函数中创建类以外的任何东西都是质量差的代码,即这样做会产生紧密耦合和糟糕的内聚性。甚至构造函数在某些情况下也可能是危险的。
这里有一个非常有用的资源来创建高质量的代码:
https://refactoring.guru/refactoring/smells