我有一个带有很多“概览”-screens的移动应用程序,即不同形式的对象列表。
这些对象相当大。模型(结构或类)有大约70-80个属性。
所有这些属性很少一次需要,特别是在列表中,这些对象经常出现,而您通常只显示8-10个属性。
当进入对象的详细屏幕时,它将消耗更多的属性。
那么,你通常会如何处理这样的情况:
1)创建两个类。一个包含另一个的子集,并在列表中使用子集,在详细视图中使用完整类
2)只创建一个类,但只获取列表所需的属性,并在获取列表数据时将其余属性填入“虚拟值”,仅在详细显示时才获取完整对象
3)只有一个类的定义,并且总是为它获取所有东西。现在是2017年,数据可能比你的平均网页还要小
如果您需要更多信息,请索要。
发布于 2017-10-26 14:11:51
您绝对可以使用Model/ POJO类来实现同样的目的。就像我们在模块化编程中使用函数一样,你可以创建多个模型类,而不是创建一个单独的类,所有的attributes.You都可以根据所需的属性使用POJO类。
For example:-
class student{
String firstname;
String lastname;
String street;
String pincode;}
**can be converted to :-
`
class student{
StudentName name;
StudentAddress address;
}
class StudentName {
String firstname;
String lastname;
}
class StudentAddress{
String street;
String pincode;
}`发布于 2017-10-26 14:42:27
考虑到从web服务接收的数据是持久化的,并从SQLite数据库中进行查询。
当数据在数据库中时,您可以使用一对一关系。例如,用于
假设您有model/POJO as,其中您以列表的形式向用户显示数据。
class User {
//basic info showed in the list
int userId;
String name;
String emailId;
}
class UserDetail {
int id;
int userPassportId;
int userId; //foriegn key to user table
.....
// other nessesary details
}SQL等效项
CREATE TABLE user(
id INTEGER PRIMARY KEY,
name TEXT,
emailId TEXT
);
CREATE TABLE userDetails(
id INTEGER PRIMARY KEY,
user_passport_number TEXT,
user_id INTEGER,
FOREIGN KEY(user_id) REFERENCES user(id)
);因此,现在当您显示项目时,您可以只查询所有用户的数据,这将为您提供您可能想要在UI中显示的基本用户信息。
当您转到详细信息页面时,您可以使用用户id进行查询,以获取相关的详细信息。
SELECT * FROM userDetails WHERE user_id = user_id_recived;https://stackoverflow.com/questions/46946855
复制相似问题