我在Android项目中使用MVVM。我有创建和编辑片段。这两个片段具有大致相同的功能。如果编写在公共视图模型中具有相同功能的函数,是否可以将公共视图模型与自己的片段视图模型一起使用。例如我可以像下面这样使用吗?
CommonViewModel(){
void selectPriority()
.
.
.
otherthings...}
CreateViewModel(){
LiveData<CommonViewModel> cvm;
.
.
.
otherthings...}
EditViewModel(){
LiveData<CommonViewModel> cvm;
.
.
.
otherthings...}
代替这个
CreateViewModel(){
void selectPriority()
.
.
.
otherthings...}
EditViewModel(){
void selectPriority()
.
.
.
otherthings...}
还是您可以向我建议可以使用的其他方式?
您可以通过继承来实现,创建一个通用的视图模型并在编辑和创建视图模型中对其进行扩展,例如
class CreatEditViewModel{
public void selectPriority(){
//to something....
}
public void other(){
//to something....
}
}
class CreateViewModel extends CreatEditViewModel{
}
class EditViewModel extends CreatEditViewModel{
}
您不能将这些逻辑放在BaseViewModel中,因为所有ViewModel都扩展了BaseViewModel。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句