在Android中使用Java进行抽象

mfr*_*het 7 java refactoring android abstraction modularity

我正在学习一些有关Java语言的教程.我想知道每次编写代码时,是否应该抽象,以及任何类型的标准和堆栈?

我已经看到,例如,对于每个Spring Services,我们甚至可以使用JavaEE堆栈上的EJB接口来抽象控制器.

我想知道那是什么目的?在使用Android SDK进行开发时,我应该做同样的事情吗?

我应该抽象我编码的每个类吗?

Y.S*_*Y.S 5

制作模块化,可重复使用的组件始终是一个好主意.当一个应用程序从头开始构建时,它会变得越来越可扩展,越来越自我扩展.应用程序中的相同组件会在添加新功能时重复使用,从而节省时间和精力.以后更容易进行更改或识别错误源.重构永远不应该在之后,而是从一开始.

话虽如此,仅仅为了"抽象"而在移动应用程序中拥有越来越多的抽象并不是一个好主意.当然,原因在于智能手机不如服务器甚至台式计算机那么强大.Android应用程序中的每个类和虚拟方法都存在性能损失.需要在"抽象"和效率之间取得更大的平衡,并且性能权衡在中低端设备上变得更加明显.

来自官方文档:

1. 注意代码抽象

2. 避免依赖注入框架

3. 避免创建不必要的对象

4. 首选静态虚拟

5. 避免内部吸气/安装者

编辑:

在最近尝试过Dagger之后,我不得不承认现在点2可能有点过时了.我能说什么......我很晚才来到匕首派对.