UITATEVIEW:相同的单元格,多个模型对象(MVC)



我在使用UITableView&的同时正在研究编写模块化代码的研究。UICollectionView,我找到了OBJC.IO的"较轻的ViewControllers"的不错的博客。在遵循作者给出的练习后,我想出了一个段落,该段落说 Same Cell type and Multiple Model Object尚未详细说明,只是描述性。我只是想问有人是否建议我们如何以更好的模块化方式实现这一目标?段落说这样的话,

In cases where we have multiple model objects that can be presented using the same cell type, we can even go one step further to gain reusability of the cell. First, we define a protocol on the cell to which an object must conform in order to be displayed by this cell type. Then we simply change the configure method in the cell category to accept any object conforming to this protocol. These simple steps decouple the cell from any specific model object and make it applicable to different data types.

任何人都可以解释它的含义吗?我知道这是脱离话题的,但它可以帮助有人编写更好的代码。

这类似于引入ViewModel或ViewAdapter。一个简单的例子是一个单元格显示任何项目的描述。说如果您给电池一个用户,它将显示他/她的全名。如果您发邮件,它将显示主题。关键是该单元不在乎它到底给出了什么(用户或邮件)。它只需要对每个项目的描述进行描述,因此它需要可以帮助其从不同类型的每个模型中提取描述字符串的东西。那就是ViewModel。

然后,而不是:Cell =>用户或Cell =>新闻。使用:Cell => ViewModel =>用户或Cell => ViewModel =>新闻。代码样本:

class ViewModel {
    private Object _item;
    public ViewModel(Object item) {
        _item = item;
    }
    public String getDescription() {
        if (_item instanceof User) {
            return ((User)_item).getFullName();
        } else if (_item instanceof Mail) {
            return ((Mail)_item).getSubject();
        }
        return "";
    }
}

相关内容

  • 没有找到相关文章

最新更新