如果这是一个愚蠢的问题,我深表歉意,但是我最近有以下用例。
我有一个想要重用的组件,在一个实例中,我希望能够编辑数据,而在另一个实例中,我只希望它可以查看。
所以这意味着在一个用例中我想渲染标签 1、2 和 3 以及一个编辑按钮,而在第二个用例中我不想渲染编辑按钮。
现在我正在使用 mvp 模式,我目前理解逻辑不应该出现在演示者中。
我的问题是:如果我想根据演示者的逻辑呈现一个组件,我该如何做到这一点而不在视图中引入逻辑。
简短的例子非常受欢迎:)
后端> 发送 >模型> 到 >演示者> 在 >视图上调用显示方法
您的模型将是 POJO(通常是从后端检索的共享对象)。演示者将进行 RPC 调用以检索它。根据模型配置,演示者在接收模型时会或不会调用视图上可用的某些“setAsEditable(Boolen editable)”方法。
视图> 将事件发送到 >演示者> 更新 >模型> 并将其发送到 >后端
当用户对视图进行一些操作时,演示者将收到它的通知(通过事件或基于界面)并更新模型。请注意,模型更新逻辑(如显示逻辑)也意味着在演示者中。然后,模型将由演示者(通过 RPC)推回后端。业务逻辑留在后端。
个人备注:
Hardcore MVPers 将在组件之间强制执行严格的松散耦合,但它通常涉及编写大量事件类和/或接口(有些人称之为样板文件)。务实。当我知道我的组件不会被重用时,我有时会避免使用这种架构,并等到我需要重用。
但如果你能设法保持纯洁,那你就很好!