Flutter 如何将一个对象映射到颤振镖中的不同类型的对象?
是否有任何方法可以将对象(例如PersonModel映射到颤振镖中的PersonEntity?这就是我目前进行这种映射的方式,首先我为映射器声明一个接口(抽象类):Flutter 如何将一个对象映射到颤振镖中的不同类型的对象?,flutter,dart,mapping,Flutter,Dart,Mapping,是否有任何方法可以将对象(例如PersonModel映射到颤振镖中的PersonEntity?这就是我目前进行这种映射的方式,首先我为映射器声明一个接口(抽象类): 抽象类映射器{ 调用(从对象调用); } 然后,我为任何模型、实体制作自定义映射器,如下所示: 类ToSource实现映射器{ @凌驾 源调用(SourceModel对象){ 返回源( id:object.id, name:object.name, ); } } 用法如下:(将SourceModel类映射到Source类) fi
抽象类映射器{
调用(从对象调用);
}
然后,我为任何模型、实体制作自定义映射器,如下所示:
类ToSource实现映射器{
@凌驾
源调用(SourceModel对象){
返回源(
id:object.id,
name:object.name,
);
}
}
用法如下:(将SourceModel类映射到Source类)
final-tosourceapper=ToSource();
最终sourceModel=sourceModel(id:'f4sge248f3',名称:'bbc新闻');
最终来源=toSourceMapper(来源模型);
如果还有其他更好的方法,请回答下面的问题。。这对所有人都有帮助。最简单的方法:
void main() {
final model = PersonModel(id: 0, name: 'name0');
final entity = _convert(model);
print(entity);
}
final _convert = (PersonModel e) => PersonEntity(
id: e.id,
name: e.name,
);
class PersonEntity {
int id;
String name;
PersonEntity({this.id, this.name});
@override
String toString() => 'id: $id, name: $name';
}
class PersonModel {
int id;
String name;
PersonModel({this.id, this.name});
}
结果:
id: 0, name: name0
是的possible@pskink怎样?你能解释更多吗?@pskink如果有一个用于代码生成的库或包,可以自动设置对象和类型,然后映射到任何东西,那会很有帮助。我认为没有这样的库:你需要通过yourself@pskink这就是我目前的做法,请看我的第一个答案。干得好,伙计!如何将列表转换为列表?@EngineSense您应该问一个新问题。现在还不清楚,当您可以定义一个独立的
源到源映射器(SourceModel object)
函数时,您为什么还要使用映射器
和ToSource
类。@jamesdlin它应该是clean体系结构中分离过程的一部分,因此,我需要有一种清晰的方法来将不同的对象从不同的数据层映射到不同的数据层。这会增加混淆,我看不出有什么好处。对于每个类型组合,您仍然需要单独的ToXXX
类;您也可以只使用单独命名的函数。也许您可以提供一个示例,其中类提供了一些好处。