返回

如何利用 MVVM 架构中的简单数据源简化旧项目的改动?

Android

导读

在上一节中,我们已经了解了如何为数据添加状态。但是,我发现数据源返回的是 LiveData<Lcee<?>>。对于新项目来说,这倒无所谓。但如果旧项目想改成 MVVM 架构,那数据源这一块就得大改了。软件设计一般推荐增加不推荐修改,因为一改容易导致其他地方发生错误。读者请注意,记得把上一节的程序备份。

简单数据源

在 MVVM 架构中,数据源是负责提供数据的组件。数据源可以是任何东西,例如数据库、网络服务或本地文件。在上一节中,我们使用的是 LiveData<Lcee> 数据源。LiveData> 数据源是一个非常强大的数据源,它可以提供数据的状态,例如加载中、成功或失败。但是,对于旧项目来说,LiveData<Lcee<?>> 数据源可能有点太复杂了。

为了简化旧项目的改动,我们可以使用简单数据源。简单数据源只提供数据,不提供数据的状态。这使得简单数据源非常容易实现,而且可以与旧项目无缝集成。

以下是如何实现简单数据源的示例代码:

public class SimpleDataSource<T> {

    private T data;

    public SimpleDataSource(T data) {
        this.data = data;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }
}

使用简单数据源

要使用简单数据源,只需将数据源注入到 ViewModel 中即可。以下是如何使用简单数据源的示例代码:

public class MyViewModel {

    private SimpleDataSource<List<User>> dataSource;

    public MyViewModel(SimpleDataSource<List<User>> dataSource) {
        this.dataSource = dataSource;
    }

    public LiveData<List<User>> getUsers() {
        return dataSource.getData();
    }
}

结论

通过使用简单数据源,我们可以简化旧项目的改动,并轻松将 MVVM 架构应用到旧项目中。简单数据源非常容易实现,而且可以与旧项目无缝集成。因此,如果您想将 MVVM 架构应用到旧项目中,那么使用简单数据源是一个非常不错的选择。