Android MVP优化
Android MVP optimization
我刚刚开始在 android 开发中使用 MVP。根据网上找到的不同教程,我为每个片段创建了 5 个(viewInterface、presenterInterface、presenterImpl、interector 和 interectorImpl)文件。有什么办法可以减少这些文件的数量吗?
谢谢
是的-不要做任何你正在做的事情。 MVP 对于某些用例来说是一个很好的模式,但没有理由超过 3 classes——一个模型、一个视图和一个演示者。任何深入到这种深度的教程都过于正式,实际上是有害的教程。
Android基本上默认就是MVP。您的演示者就是您的 Activity class。您的视图就是您的布局 - 视图的层次结构 classes。您的模型是您 运行 您的应用程序所需的任何数据。
不要拘泥于对模式过于正式的解释,也不要应用模式来应用模式。模式的真正使用并不是让您的应用程序看起来像那样的目标,模式的真正使用是一种描述您对其他人所做的事情的方式 architects/programmers。你永远不应该看着一个模式并试图找到使用它的方法,或者看着一个问题然后思考 "what patterns can I use"。你应该看到一个问题,想到一个解决方案,那可能就是一个模式。当您准备好研究模式时,您应该已经在代码中看到了其中的绝大多数。
因为您已经了解了 Clean Architecture 的基础知识。以下示例描述了您的 MVP 模式是如何实际实施的。
示例:
interface BaseContract {
interface BaseView {
//Methods for View
void onDoSomething();
}
interface BasePresenter {
void doSomething();
}
}
class BaseMainPresenter implements BaseContract.BasePresenter {
BaseContract.BaseView view;
BaseMainPresenter(BaseContract.BaseView view) {
this.view = view;
}
@Override
public void doSomething() {
if (view != null)
view.onDoSomething();
}
}
class DemoClass implements BaseContract.BaseView {
//Create object of Presenter
/****
* Example :
* BaseMainPresenter baseMainPresenter = new BaseMainPresenter(this);
*/
@Override
public void onDoSomething() {
//Deal with Context here.
}
}
您可以参考以下内容作为 MVP 模式 link :-
我刚刚开始在 android 开发中使用 MVP。根据网上找到的不同教程,我为每个片段创建了 5 个(viewInterface、presenterInterface、presenterImpl、interector 和 interectorImpl)文件。有什么办法可以减少这些文件的数量吗?
谢谢
是的-不要做任何你正在做的事情。 MVP 对于某些用例来说是一个很好的模式,但没有理由超过 3 classes——一个模型、一个视图和一个演示者。任何深入到这种深度的教程都过于正式,实际上是有害的教程。
Android基本上默认就是MVP。您的演示者就是您的 Activity class。您的视图就是您的布局 - 视图的层次结构 classes。您的模型是您 运行 您的应用程序所需的任何数据。
不要拘泥于对模式过于正式的解释,也不要应用模式来应用模式。模式的真正使用并不是让您的应用程序看起来像那样的目标,模式的真正使用是一种描述您对其他人所做的事情的方式 architects/programmers。你永远不应该看着一个模式并试图找到使用它的方法,或者看着一个问题然后思考 "what patterns can I use"。你应该看到一个问题,想到一个解决方案,那可能就是一个模式。当您准备好研究模式时,您应该已经在代码中看到了其中的绝大多数。
因为您已经了解了 Clean Architecture 的基础知识。以下示例描述了您的 MVP 模式是如何实际实施的。
示例:
interface BaseContract {
interface BaseView {
//Methods for View
void onDoSomething();
}
interface BasePresenter {
void doSomething();
}
}
class BaseMainPresenter implements BaseContract.BasePresenter {
BaseContract.BaseView view;
BaseMainPresenter(BaseContract.BaseView view) {
this.view = view;
}
@Override
public void doSomething() {
if (view != null)
view.onDoSomething();
}
}
class DemoClass implements BaseContract.BaseView {
//Create object of Presenter
/****
* Example :
* BaseMainPresenter baseMainPresenter = new BaseMainPresenter(this);
*/
@Override
public void onDoSomething() {
//Deal with Context here.
}
}
您可以参考以下内容作为 MVP 模式 link :-