基于
我制作了以下Android包结构:
com.company.product.activities
com.company.product.database
com.company.product.fragments
com.company.product.fragments.adapters
com.company.product.models
但有时,根据要求,我需要为自定义对话框提供适配器。
我应该把它放在哪里?因为它是一个小型适配器,它主要用在对话框中的活动中,操作反映回活动。
面临的问题是:
将过多的上下文(Activity)引用传递给适配器。
所有方法最终都是公开的,这违反了隐藏实现细节的OOP概念。
私有适配器和包装结构有多大区别?这是Android项目包结构的标准方法吗?
答案 0 :(得分:7)
我会将适配器放在adapters
包中。即使it is small adapter, mostly its to be used within a activity in a dialog, with operations reflecting back to activity
您永远不知道该适配器将如何发展以及将在何种情况下使用它。
关于您的疑虑:
Too much of context references
- 您的适配器的每个实例都有一个Context
来引用。只要您没有从适配器泄漏任何东西,那么这不是问题。您也可以通过其他实现扩展此适配器,这也适用于这些实现。All methods end up public, which fails the OOP's concept of hiding implementation details
。只要你从你的应用程序调用适配器(应该总是这样)并且你没有构建SDK,那么我真的没有看到问题。如果您担心OOP最佳做法,我宁愿担心让适配器尊重Single Responsibility Principle
:不要让适配器做多于显示给定数据。private
代码时使用private
访问权限。总而言之,考虑到可重用性,Single Responsibility
和最佳实践文章,我赞成或将adapters
分离到专门的课程。