【发布时间】:2022-05-23 19:52:54
【问题描述】:
我为一个简单的显示联系人项目遵循干净的架构。 在我的 Flutter 项目中,我有这些目录:Data、Domain、Presentation。 我首先在域层中为示例联系人创建一个实体
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\'],
);
}
标签: flutter dart oop model clean-architecture