我的问题是,让子类与父类交流的最佳方式是什么。例如:我有一个简单地称为 Main 的主类和另一个类 SomeClass。现在 Main 类创建了 SomeClass 的一个实例,一旦 SomeClass 对象的状态发生变化,Main 类应该执行不同的代码,具体取决于发生了什么变化。是的,我知道,这听起来像是观察者设计模式,但是我将如何通过不同的状态更改来实现它呢?我目前正在编写一个带有数据库的 Android 应用程序,以使其更加具体。在我的项目中,我有一个主类、一个用于连接、读取/写入数据库的类和一个 GUI 容器类。(过于简单,还有一些) 主类创建 GUI 和数据库类的实例。现在如果我按下按钮 A,它应该将 A 数据写入数据库,如果我按下按钮 B,它应该将 B 数据写入数据库。因为我认为 gui 类不应该直接访问数据库,所以我尝试了其他选项,而不仅仅是从 gui 类访问数据库 目前,我定义了一个占位符抽象类,只有一种方法,我只是覆盖与功能。所以现在我必须为单击按钮 A 创建一个单一方法类 A,为单击按钮 B 创建一个单一方法类 B。这对我来说听起来不是最好的方法,我的意思是工作,但我想改进我的代码,所以如果你有任何想法,请写下你的解决方案。:) 我定义了一个占位符抽象类,只有一个方法,我只是用功能覆盖。所以现在我必须为单击按钮 A 创建一个单一方法类 A,为单击按钮 B 创建一个单一方法类 B。这对我来说听起来不是最好的方法,我的意思是工作,但我想改进我的代码,所以如果你有任何想法,请写下你的解决方案。:) 我定义了一个占位符抽象类,只有一个方法,我只是用功能覆盖。所以现在我必须为单击按钮 A 创建一个单一方法类 A,为单击按钮 B 创建一个单一方法类 B。这对我来说听起来不是最好的方法,我的意思是工作,但我想改进我的代码,所以如果你有任何想法,请写下你的解决方案。:)
作为一种好的做法,最好避免在 GUI 类中编写代码。所以我们可以在这里使用MVVM 模式。
让我为您的案例展示一个简单的示例。这是一ViewModel
堂课。视图模型没有对视图类的引用:
public class YourViewModel
{
public void LoadA()
{
// here you can interact with your database
}
public void LoadB()
{
// here you can interact with your database
}
}
这是你的view
课。它处理按钮单击、用户与视图的交互并转发到视图模型。它有一个对视图模型的引用。
public class YourView
{
YourViewModel yourViewModel;
public YourView()
{
yourViewModel = new YourViewModel();
}
public void ButtonA_Handler()
{
yourViewModel.LoadA();
}
public void ButtonB_Handler()
{
yourViewModel.LoadB();
}
}
如果您想处理许多事件,那么您可以尝试使用这种方法How to: Handle Multiple Events Using Event Properties。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句