Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 设计模式:具有不同数据源的相似片段_Java_Android_Design Patterns - Fatal编程技术网

Java 设计模式:具有不同数据源的相似片段

Java 设计模式:具有不同数据源的相似片段,java,android,design-patterns,Java,Android,Design Patterns,所以我有一个与设计模式相关的问题。在我的Android应用程序中,我有两个非常相似的片段(它们使用相同的布局文件),用给定的数据填充布局。唯一的区别是数据源。一个片段从远程数据库读取数据,另一个片段从本地数据库读取数据 我可以想出三种方法来实现这一点 在创建片段之前检索所需的数据,然后通过片段的构造函数传递数据对象 使用retrieve()方法创建接口DataRetriever,并将其传递给RemoteDataRetriever、LocalDataRetriever实现,然后将其传递给片段 创建

所以我有一个与设计模式相关的问题。在我的Android应用程序中,我有两个非常相似的片段(它们使用相同的布局文件),用给定的数据填充布局。唯一的区别是数据源。一个片段从远程数据库读取数据,另一个片段从本地数据库读取数据

我可以想出三种方法来实现这一点

  • 在创建片段之前检索所需的数据,然后通过片段的构造函数传递数据对象

  • 使用retrieve()方法创建接口DataRetriever,并将其传递给RemoteDataRetriever、LocalDataRetriever实现,然后将其传递给片段

  • 创建以分离片段的实现或扩展布局的基类和从不同位置检索数据的两个子类

  • 你推荐什么?还是我忽略了另一种方法

    提前谢谢。
    亲切的问候

    我会选择上面的2号。。。。只有一个片段。你可以使用第二种方法。但是,不要将DataRetriever传递给片段,而是创建一个SimpleRetrieverFactory类并将其实例传递给片段。在工厂中创建检索器对象,并将其返回到片段中。@brifbraff感谢你们的回复。我和工厂一起去。干杯