我目前是一名初级开发人员,致力于一些试图进入android java开发世界的项目。
然而,今天我的问题适用于大多数OOP驱动的概念。
让我谈谈这一点。我的Android应用程序有一些活动和方法最终会有非常繁重的数据库查询,这使得它非常慢,特别是因为我使用ORM(SugarORM)来加快速度(开发明智)和减少错误。
我已经找到了一个解决方案,它似乎工作得很好,但是,我认为最好在整合应用程序之前询问它。只是想知道这通常是不好的做法。
不幸的是,google并不是非常有用,主要是因为搜索类似问题所需的关键字总是会让我进入Null对象模式:|
我的实施示例:
private List<Book> mBooks;
public List<Book> getBooks() {
if (this.mBooks == null)
this.mBooks = SugarRecord.listAll(Book.class);
return this.mBooks;
}
public List<Book> onBookListUpdated() {
this.mBooks = null;
}
正如您所看到的,这可以确保查询仅执行一次(至少在预期列表发生更改之前)。
我需要知道的是,如果这是有意义的,有多少程序员会真正做这样的事情,如果它是什么东西,它叫什么?
此外,如果它是'好的'&#39;要做,将这个逻辑包装在一个类中是个好主意吗?
说出类似的话:
public class FastList<T> {
public interface iFastList<TT> {
List<TT> reloadList();
}
public FastList(iFastList<T> inCallback) {
this.callback = inCallback;
}
private iFastList<T> callback
private List<T> currentList;
public List<T> getList() {
if (this.currentList == null)
this.currentList = this.callback.reloadList();
return this.currentList;
}
public void onListChanged() {
this.currentList = null;
}
}
提前感谢所有需要时间回答的问题。
答案 0 :(得分:1)
Lazy Intitailization 它在objective-c
中很受欢迎- (NSMutableArray *) myArray {
if(!_myArray) {
_myArray = [[NSMutableArray alloc] init];
}
return _myArray;
}