MVP 和多种行为
MVP and multiple behaviours
我一直在尝试使用 MVP
和 dagger
制作一个 简单的记事本应用程序 (我的第一个应用程序)。
我已经理解了大部分内容,但如果我有多种行为,我会有点迷茫。我会解释。
我的项目层次结构是这样的:
Click here
- MainActivity - activity class,包含一个列表视图。
- MainPresenter - 界面,包含一个设置容器方法和一个刷新方法
- MainPresenterImpl - 演示器的实现
- MainView - MainActivity 的界面(对于 mvp)
- Note_Container - 包含用于加载-保存笔记的 NoteHandler,creates/stores 适配器并且可以进行更改
- 忽略注释activity它是空的
- di 文件夹用于依赖注入
- models 只有一个音符 class 包含两个字符串
- NoteHandler - 包含 NoteRepository 并处理抛出的异常。
- NoteRepository - 使用 gson 库从文件中保存和加载笔记。
在解释了所有这些之后,您应该(可能)了解该项目的工作原理(随意批评层次结构)。
现在我想添加一个创建注释的按钮。我将在 mainactivity
上添加监听器并将其重定向到 Presenter...
但是演示者会处理代码以添加新注释(开始新意图等)还是我应该创建一个新的 class 来独立处理这些东西?
如果将来我想添加更多按钮,例如删除所有注释或启动帮助对话框,我是否应该为每个按钮制作一个 class 来处理代码?
我怎样才能组织这样的事情?
导航未在 MVP 模式中正式解决。嗯,我觉得有两个好办法:
1 - 您可以创建一个 Navigator/Router 来为您处理导航。所以演示者将所有这些逻辑都传递给导航器或...
2 - 您可以在 Activity 中处理屏幕更改。我真的相信屏幕变化是 View 的责任,所以你要做的就是将导航命令传递给 View。喜欢:
interface MainView{
void navigateToAddCardScreen()
void navigateToLoginScreen()
void navigateSomeScreen()
}
我更喜欢第二种选择。导航器使代码对我来说过于细化...
希望能帮到你
我一直在尝试使用 MVP
和 dagger
制作一个 简单的记事本应用程序 (我的第一个应用程序)。
我已经理解了大部分内容,但如果我有多种行为,我会有点迷茫。我会解释。
我的项目层次结构是这样的:
Click here
- MainActivity - activity class,包含一个列表视图。
- MainPresenter - 界面,包含一个设置容器方法和一个刷新方法
- MainPresenterImpl - 演示器的实现
- MainView - MainActivity 的界面(对于 mvp)
- Note_Container - 包含用于加载-保存笔记的 NoteHandler,creates/stores 适配器并且可以进行更改
- 忽略注释activity它是空的
- di 文件夹用于依赖注入
- models 只有一个音符 class 包含两个字符串
- NoteHandler - 包含 NoteRepository 并处理抛出的异常。
- NoteRepository - 使用 gson 库从文件中保存和加载笔记。
在解释了所有这些之后,您应该(可能)了解该项目的工作原理(随意批评层次结构)。
现在我想添加一个创建注释的按钮。我将在 mainactivity
上添加监听器并将其重定向到 Presenter...
但是演示者会处理代码以添加新注释(开始新意图等)还是我应该创建一个新的 class 来独立处理这些东西?
如果将来我想添加更多按钮,例如删除所有注释或启动帮助对话框,我是否应该为每个按钮制作一个 class 来处理代码?
我怎样才能组织这样的事情?
导航未在 MVP 模式中正式解决。嗯,我觉得有两个好办法:
1 - 您可以创建一个 Navigator/Router 来为您处理导航。所以演示者将所有这些逻辑都传递给导航器或...
2 - 您可以在 Activity 中处理屏幕更改。我真的相信屏幕变化是 View 的责任,所以你要做的就是将导航命令传递给 View。喜欢:
interface MainView{
void navigateToAddCardScreen()
void navigateToLoginScreen()
void navigateSomeScreen()
}
我更喜欢第二种选择。导航器使代码对我来说过于细化...
希望能帮到你