针对包结构问题的Android最佳做法

Akh*_*ain 8 standards android project-structure package

基于

我做了以下Android包结构:

  • com.company.product.activities

  • com.company.product.database

  • com.company.product.fragments

  • com.company.product.fragments.adapters

  • com.company.product.models

但有时,根据要求,我需要为自定义对话框提供适配器.

我应该把它放在哪里?因为它是一个小型适配器,所以它主要用在对话框中的活动中,操作反映回活动.

面临的问题是:

  1. 将过多的上下文(Activity)引用传递给适配器.

  2. 所有方法最终都是公开的,这违反了隐藏实现细节的OOP概念.

  3. 私有适配器和包装结构有多大区别?这是Android项目包结构的标准方法吗?

gun*_*nar 7

我会把适配器放在一个adapters包中.即使it is small adapter, mostly its to be used within a activity in a dialog, with operations reflecting back to activity您永远不知道该适配器将如何发展以及将在何种情况下使用它.

关于你的顾虑:

  1. Too much of context references- 适配器的每个实例都有一个Context引用的实例.只要您没有从适配器泄漏任何东西,那么这不是问题.您也可以通过其他实现扩展此适配器,这也将适用于这些实现.
  2. All methods end up public, which fails the OOP's concept of hiding implementation details.只要你从你的应用程序调用适配器(应该总是这样)并且你没有构建SDK,那么我真的没有看到问题.如果您担心OOP最佳实践,我宁愿担心使适配器尊重Single Responsibility Principle:不要让适配器做多于显示给定数据.
  3. 考虑到可重用性,我宁愿不将适配器作为私有(静态或非静态)类成员.要添加更多内容,最好的做法private在处理private从内部类调用代码时不鼓励使用访问权限.

所以总结,考虑可重用性Single Responsibility和最佳实践文章,我赞成或分离adapters到专门的课程.