MVP 项目中包结构的最佳实践

2024-07-01

我有一个使用 MVP 架构的 Android Studio 项目。 对于这种风格的项目,建议的包结构是什么 我们可以做的:

app:
  screen_name
    activityA
    presenterA
    interfaceA

or:
   activities
     activityA
     activityB
   preentors
     presentorA
     presentorB
etc

你的问题只是UI部分MVP架构模式。这是View类及其相应的演讲者。更好的解决方案是first方法。

应用程序应该有包根据features,而不是常见功能。我们应该将以下类别分组在一起一起改变/修改.

一些开发人员按层对源代码进行分组 - 就像第二种方法一样 - 因为他们希望为他们所从事的所有项目保留相同的包结构。但这是一个错误的决定,因为当它们被分组时总是很难找到类,因为它们共享相同的父类!

例如:对于活动,一些开发人员将它们放入activity包,因为所有活动都延伸Activity班级。这是有道理的,因为这是仅限活动的包,但很难浏览这些包。

有关更多信息,请参阅:android-mvp-架构 https://github.com/MindorksOpenSource/android-mvp-architecture还有这个S.Oanswer https://stackoverflow.com/a/38480476/5282585

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MVP 项目中包结构的最佳实践 的相关文章

随机推荐

  • SQL Server 2012 - 使用 openquery 插入链接服务器表

    我有一个链接服务器Remoteserver包含一个表 其中保存目录中的文件和文件夹名称 当我在远程服务器上时 我可以运行内置程序 xp dirtree 并填充 文件 表 但我需要做的是从本地 SQL 服务器运行一个查询来执行以下操作 删除所
  • 在没有 S3 的情况下设置 Amazon Cloudfront

    我想使用 Cloudfront 从我的静态网站提供图像和 CSS 我读过无数文章展示如何使用 Amazon S3 设置它 但我只想将文件托管在我的主机上并使用云前端来加速所述文件的传输 我只是不确定如何去做 到目前为止 我已经使用我的原始域
  • 路径必须是字符串。将我的科尔多瓦升级到 7.1.0 后收到未定义的消息

    E ionic template gb IonicMaterialDesign gt cordova 平台添加 android 使用 cordova fetch for cordova android 6 3 0 添加 android 项目
  • 在自定义 CellRenderer 中重写 createToolTip()

    我正在尝试为 JTable 的特定列获取自定义工具提示 我已经创建了一个 CellRenderer 我已经成功更改了其他特定于单元格的属性 private class CustomCellRenderer extends DefaultTa
  • C# 中 Action 委托的使用 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在与 C 中的 Action Delegates 合作 希望更多地了解它们并思考它们可能在哪些方面有用 有人使用过 Action
  • 如何使用 pkg-config 在 Xcode 中设置包含路径?

    例如 如果我需要 Gtk 包含路径 如何使用pkg config gtk 2 0 cflags在 Xcode 项目设置中 一种选择 但它对于项目中的其他开发人员来说不太方便 您可以运行pkg config gtk 2 0 cflags在您的
  • JCombo AutoComplete - 模式或反向查找

    我正在使用swingx 库中的自动完成装饰器 http download java net javadesktop swinglabs releases 0 8 docs api org jdesktop swingx autocomple
  • 如何删除 JComboBox 的“单击并查看下拉菜单”功能?

    我有一个 JComboBox 它使用 GlazedLists 添加预输入功能 我希望用户输入一个字符串并看到预先输入的内容 这要归功于 Glazedlists 但是 我不希望用户能够单击组合框的向下箭头并检查下拉列表 我已使向下箭头不可见并
  • 了解 HTML 5 事件拖动

    我不明白为什么在事件拖动中鼠标坐标clientX的返回值总是0或释放鼠标之前的负值 我准备了一个例子 当用户dragstart 鼠标位置正确 结束同样dragend 但是如果你查看控制台drag你会看到之前dragend负值 是正常行为吗
  • html5 画布上下文 .fillStyle 不起作用

    只是为了创建一个游戏而第一次尝试canvas 我显示了一个图像 但奇怪的是 fillStyle 方法似乎不起作用 至少画布背景在谷歌浏览器中仍然是白色的 请注意 在我的代码中 画布变量实际上是画布元素的二维上下文 也许这就是我让自己感到困惑
  • MySQL:选择具有适用于多行的条件的记录

    我有一张桌子 DETAILS ID PARENT ID DATA KEY DATA VALUE 1 1 Guitar 4 2 1 Radio 2
  • 设置 JavaFX TreeView 线条样式

    在 Java Swing 中 有 JTree linestyle 属性 用于启用 禁用将树中的父节点连接到其子节点的线 JavaFX 2 中有类似的东西吗 在我看过的所有 JavaFX TreeView 示例中 我都没有看到这一点 我也没有
  • Perl 中的异常有什么问题?

    中的讨论另一个问题 https stackoverflow com questions 2164614 what should i do if a moose builder method fails让我想知道 其他编程语言的异常系统有哪些
  • 如何在组织模式导出中按编号引用部分?

    我正在组织模式下工作 并尝试生成一个链接来通过编号而不是标题来引用部分 Section One PROPERTIES CUSTOM ID sec one END Section Two label sec two I can referen
  • 适用于 Chrome 和 Internet Explorer 的 GWT Developer 插件 - 阻止安装的错误

    我尝试安装适用于 Chrome 的 GWT Developer 插件 版本 34 0 1847 131 m 但收到以下错误 此计算机不支持此应用程序 安装已被禁用 检测到以下问题 和 NPAPI 插件此应用程序需要 有没有解决的办法 我已经
  • 在 Xcode 4 中显示方法定义/描述

    有没有办法在 Xcode iOS 项目中向我的方法添加描述 以便我可以在使用 OPTION 单击所需的方法时看到快速详细信息 就像在 Apple 的 API 方法上完成的那样 如下例 Thanks 如果我理解正确的话 那么所有这些工具都是用
  • Clang PCH 性能比标头差?

    我在源文件中包含一组标头 这些标头很少 从未更改 解析 重新解析使用标头的频繁更改的源文件 IDE 用例 需要太长时间 几秒钟 作为提高性能的一种方式 我想使用 Clang PCH 请注意 我正在 Android 上以发布模式 99 确定
  • 指定的 LINQ 表达式包含对与不同上下文关联的查询的引用

    尝试连接查询中的多个表时出现错误 指定的 LINQ 表达式包含对与不同上下文关联的查询的引用 这很令人困惑 因为它看起来像是我在查询中使用了不同的上下文 但我没有 public static IQueryable
  • Web浏览器控件导航返回

    是否可以导航回 WebBrowser 控件 我找不到任何方法来做到这一点 当前没有办法从缓存中执行此操作 但是您可以覆盖按键返回功能以捕获返回按钮按下并实现您自己访问的站点堆栈
  • MVP 项目中包结构的最佳实践

    我有一个使用 MVP 架构的 Android Studio 项目 对于这种风格的项目 建议的包结构是什么 我们可以做的 app screen name activityA presenterA interfaceA or activitie