> Android-package-structure-best-practice
> Android-Architecture
我制作了以下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项目包结构的标准方法吗?
解决方法
关于你的担忧:
>上下文引用太多 – 适配器的每个实例都有一个要引用的Context.只要您没有从适配器泄漏任何东西,那么这不是问题.您也可以通过其他实现扩展此适配器,这也将适用于这些实现.
>所有方法最终公开,这不符合OOP隐藏实现细节的概念.只要你从你的应用程序调用适配器(应该总是如此)并且你没有构建SDK,那么我真的没有看到问题.如果您担心OOP最佳实践,我宁愿担心使适配器尊重单一责任原则:不要让适配器做更多的事情而不是显示给定的数据.
>考虑到可重用性,我宁愿不将适配器作为私有(静态或非静态)类成员.要添加更多内容,有一个best practice在您处理从内部类调用私有代码时不鼓励使用私有访问.
总结一下,考虑到可重用性,单一责任和最佳实践文章,我赞成或将适配器分离到专用类.