无论你是在 Android 还是 iOS 上工作,都要考虑自定义的 View
或 UIView
,称为ListItemView
。这个 ListItemView
在左边显示一个图标,然后在图标右边显示字幕上方的标题,最后在右侧显示一个可选附件:
在定义这个自定义 View 的时候,你可以将每个对 View 的描述设为独立属性:
myListItemView.icon = blah;
myListItemView.title = “blah”;
myListItemView.subtitle = “blah”;
myListItemView.accessory = blah;
从技术上来说,这没什么问题,但是带来了架构成本。通过独立定义每个配置,你对其描述的 Object 需要引用你的 View,以便它可以配置每个属性。但是,如果你使用视图模型,那么你的描述 Object 可以在不引用 View 的情况下运行,这意味着描述 Object 可以进行单元测试,并且它避免了对具体 View 的编译时依赖性:
class ListItem {
final Icon icon;
final String title;
final String subtitle;
final Icon accessory;
...
}
// 使用 Presenter 创建一个新的视图模型。
myListItem = myPresenter.pre