MVP和多种行为

时间:2017-09-26 14:50:04

标签: java android mvp android-mvp

我一直在尝试使用MVPdagger创建一个简单的记事本应用(我的第一个应用)。 我已经理解了大部分内容,但如果我有多种行为,我会有点失落。我会解释一下。
我的项目层次结构如下: Click here

  • MainActivity - 活动类,包含列表视图。
  • MainPresenter - 界面,按住设置容器方法,刷新一个
  • MainPresenterImpl - 演示者的实现
  • MainView - MainActivity的接口(适用于mvp)
  • Note_Container - 包含用于加载保存注释的NoteHandler,创建/存储适配器并可以进行更改
  • 忽略音符活动
  • di文件夹用于依赖注入
  • models只有一个包含两个字符串的音符类
  • NoteHandler - 包含NoteRepository,并在抛出异常时处理异常。
  • NoteRepository - 使用gson库保存并加载文件中的注释。

在解释了所有这些之后你应该(可能)理解项目是如何工作的(随意批评层次结构)。
现在我想添加一个创建笔记的按钮。我只需在mainactivity上添加监听器并将其重定向到Presenter ......
但是,演示者是否会处理代码以添加新笔记(开始新的意图等),或者我应该创建一个独立处理这些东西的新类? 如果我想在将来添加更多按钮,例如remove-all-notes或启动帮助对话框,我是否应该为每个按钮创建一个将处理代码的类? 我怎么组织这样的东西?

1 个答案:

答案 0 :(得分:0)

MVP模式中没有正式解决导航问题。好吧,我认为有两个好方法:

1 - 您可以创建一个导航器/路由器来为您处理导航。因此,演示者将所有这些逻辑都解释为导航器或......

2 - 您可以在活动中处理屏幕更改。我真的相信屏幕更改是View的责任,所以你只需要将导航命令传递给View。像:

interface MainView{
    void navigateToAddCardScreen()
    void navigateToLoginScreen()
    void navigateSomeScreen()
}

我更喜欢第二种选择。导航器使代码对我来说太过细化......

我希望我能帮忙