GWT和MVP;渲染逻辑

GWT和MVP;渲染逻辑,gwt,web,mvp,Gwt,Web,Mvp,如果这是一个愚蠢的问题,我很抱歉,但是我最近有以下用例 我有一个我想重用的组件,在一个实例中,我希望能够编辑数据,在另一个实例中,我只希望它是可查看的 因此,这意味着在一个用例中,我希望呈现标签1、2和3以及编辑按钮,而在第二个用例中,我不希望呈现编辑按钮 现在我正在使用mvp模式,我目前的理解是,逻辑不应该出现在演示者中 我的问题是:如果我想基于演示者的逻辑呈现组件,我如何在不在视图中引入逻辑的情况下实现这一点 非常欢迎使用简短的示例:)后端将模型发送给演示者,演示者调用视图上的显示方法 您的

如果这是一个愚蠢的问题,我很抱歉,但是我最近有以下用例

我有一个我想重用的组件,在一个实例中,我希望能够编辑数据,在另一个实例中,我只希望它是可查看的

因此,这意味着在一个用例中,我希望呈现标签1、2和3以及编辑按钮,而在第二个用例中,我不希望呈现编辑按钮

现在我正在使用mvp模式,我目前的理解是,逻辑不应该出现在演示者中

我的问题是:如果我想基于演示者的逻辑呈现组件,我如何在不在视图中引入逻辑的情况下实现这一点


非常欢迎使用简短的示例:)

后端将模型发送给演示者,演示者调用视图上的显示方法

您的模型将是POJO(通常是从后端检索的共享对象)。演示者将发出和RPC调用以检索它。根据模型配置,演示者在接收模型时将调用或不调用视图上可用的某些“setAsEditable(Boolen editable)”方法

视图>将事件发送到>演示者>,演示者更新>模型>并将其发送到>后端

当用户对视图执行某些操作时,演示者将收到一个通知(通过事件或基于界面),并更新模型。请注意,模型更新逻辑(如显示逻辑)也应位于演示者中。然后,演示者(通过RPC)将模型推回后端。业务逻辑留在后端

个人说明:

硬核MVPER将在组件之间强制执行严格的松耦合,但它通常涉及编写大量事件类和/或接口(有人称之为样板)。要务实。当我知道我的组件不会被重用时,我有时会避免使用这种体系结构,并等待重用的需求出现


但是如果你能保持纯洁,你就很好

非常感谢你的回答。作为对您个人注释的回应:所讨论的代码是一个合资企业,mvp已经被打破,强制执行它会迫使我们编写太多的样板代码(尽管我无论如何都非常需要这样做:D)