2012-08-02 88 views
1

我想知道如何用MVP实现一个简单的登录情况。我的MVP框架只允许从视图中触发事件,我不能从演示者触发事件。不知道这是好事还是坏事。我确实看到它的优势,但简单的情况下,只是被附加的间接指针炸毁。MVP如何实现简单的登录

所以,当我想实现简单的登录场景我有以下几点。

  • LoginPresenter
  • LoginView
  • LoginModel

当用户登录按钮登录表单和点击填充会发生什么?

  1. 视图触发一个事件“登录点击”
  2. 主讲监听该事件,并使用它的模型
  3. 如果登录successufl不登录,我必须再次调用视图告诉登录成功。
  4. 视图触发另一个事件“登录成功”。
  5. 演示者和其他演示者现在显示另一个视图并关闭登录窗口。

从我的角度来看通过查看步骤对于成功的事件实在太多......

是我的错框架没有让我从演示火灾事件或这是MVP的neccessary邪恶?

回答

1

每个框架都将定义自己的规则,确切地说明View如何触发Presenter,反之亦然。您必须仔细研究是否有其他框架似乎稍微容易一些。但是,总体努力可能保持相似。

对于像登录这样简单的过程来说,这看起来像是一个很大的努力,但在我看来,单元可测试性的好处是值得的。

现在,您可以通过嘲笑视图和模型来测试您的日志。演示者是否正确处理无效输入?如果登录不正确/正确,视图是否得到正确的提示?所有这些问题现在都可以用模型和视图的模拟对象进行单元测试来解决。

只要确保您的视图和模型被定义为接口。查看诸如JMock之类的库,以帮助您进行单元测试。

然后,想象一下这个框架对于更复杂的场景有多有用,比如处理客户的订单!