Java 如何在整个应用程序中保存文件集合?
在我的移动应用程序中,我需要保存一组文件对象(图片、文档),这些对象可以在整个应用程序中访问,用户可以对这些对象进行各种操作:Java 如何在整个应用程序中保存文件集合?,java,file,singleton,Java,File,Singleton,在我的移动应用程序中,我需要保存一组文件对象(图片、文档),这些对象可以在整个应用程序中访问,用户可以对这些对象进行各种操作: 查看所有/单个文件 将集合的子集上载到服务器 共享单个文件 集合仅初始化一次 我想知道使用单例模式作为保存集合的对象是否是一个好主意,这样我就不必在用户每次打开特定屏幕时初始化集合了?当然,这就是单例模式的目的 从中,单例模式是 仅当一个对象处于活动状态时非常有用 需要跨部门协调行动 系统 例如: public class SingletonCollection
- 查看所有/单个文件
- 将集合的子集上载到服务器
- 共享单个文件
我想知道使用单例模式作为保存集合的对象是否是一个好主意,这样我就不必在用户每次打开特定屏幕时初始化集合了?当然,这就是单例模式的目的 从中,单例模式是 仅当一个对象处于活动状态时非常有用 需要跨部门协调行动 系统 例如:
public class SingletonCollection {
private Collection<File> fileCollection;
private static SingletonCollection instance;
private SingletonCollection() {
fileCollection = new ArrayList<File>();
}
public static SingletonCollection getInstance() {
if (instance == null) {
instance = new SingletonCollection();
}
reutrn instance;
}
public void addFile(File f) {
fileCollection.add(f);
}
public Collection<File> getFiles() {
return fileCollection;
}
}
公共类单例集合{
私人收藏文件收藏;
私有静态SingletonCollection实例;
私人单音收集(){
fileCollection=newarraylist();
}
公共静态SingletonCollection getInstance(){
if(实例==null){
instance=new SingletonCollection();
}
reutrn实例;
}
公共无效添加文件(文件f){
fileCollection.add(f);
}
公共集合getFiles(){
返回文件收集;
}
}
如果集合只初始化一次,则使用singleton。毫无疑问 如果您使用的是Java ME,请尝试RecordStore。您可以从应用程序中的任何位置访问它 对于Java>=1.5
public enum FileCollector
{
INSTANCE;
private FileCollector()
{
List _temp = new ArrayList();
File f = new File("properties");
_temp.add(f);
fileContainer = Collections.unmodifiableList(_temp);
}
private final Collection<File> fileContainer;
public Collection<File> getFiles() {
return fileContainer;
}
}
公共枚举文件收集器
{
实例;
私有文件收集器()
{
列表_temp=new ArrayList();
文件f=新文件(“属性”);
_温度添加(f);
fileContainer=集合。不可修改列表(_temp);
}
私有最终收集文件容器;
公共集合getFiles(){
返回文件容器;
}
}
这绝对是个好主意。这样也可以避免通过varius UI类传递引用,这可能是个好主意。如果您认为将来可能只想将文件的一个子集传递给特定的对象、类或方法,那么您可能希望显式地传递对singleton对象或其数据的引用,以便将来可以更轻松地实现上述行为。感谢您的提示,我将把它作为singleton实现。