我遵循一个简单的显示联系人项目的干净架构。在我的flutter项目中,我有这些目录:Data、Domain、Presentation。我首先在Domain层中为示例联系人创建了一个实体
class Contact {
final String fullName;
final String email;
final bool favourite;
Contact(
{required this.fullName, required this.email, required this.favourite});
}
字符串
当我们从数据源获取联系人时,它通常是以List<Contact>
的形式出现的,就像下面的JSON响应一样
{
"contacts": [
{
"fullName" : "John Doe (JSON)",
"email" : "johndoe@json.com",
"favourite" : true
},
{
"fullName" : "Ema Doe (JSON)",
"email" : "emandoe@json.com",
"favourite" : false
},
{
"fullName" : "Micheal Roe (JSON)",
"email" : "michro@json.com",
"favourite" : false
}
]
}
型
现在的问题是我们如何在数据层实现模型,这将是正确的基础上干净的架构。这个模型正确吗?
class ContactsModel {
late List<Contact> contacts;
ContactsModel({required this.contacts});
ContactsModel.fromJson(dynamic json) {
if (json['contacts'] != null) {
contacts = [];
json['contacts'].forEach((v) {
contacts.add(ContactModel.fromJson(v));
});
}
}
}
class ContactModel extends Contact {
ContactModel(
{required String fullName,
required String email,
required bool favourite})
: super(fullName: fullName, email: email, favourite: favourite);
ContactModel.fromJson(dynamic json)
: super(
fullName: json['fullName'],
email: json['email'],
favourite: json['favourite'],
);
}
型
1条答案
按热度按时间bkhjykvo1#
使用联系人列表作为模型类。在您的域层中,这里是您的实体
字符串
这是数据层中的ContactModel