返回
ViewBinding封装无用论
Android
2023-12-27 04:37:22
ViewBinding使用封装的弊端
对于ViewBinding的使用封装,开发人员普遍存在以下误区:
- 认为ViewBinding的封装可以提高代码复用率。
- 认为ViewBinding的封装可以简化代码,提高开发效率。
- 认为ViewBinding的封装可以提高代码的可维护性。
然而,经过实际验证,这些观点并不成立。
初试
尝试抽取一层Base类进行封装
public abstract class BaseActivity<T extends ViewBinding> extends AppCompatActivity {
protected T binding;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
Class<T> bindingClass = (Class<T>) ((ParameterizedType) getClass()
.getGenericSuperclass()).getActualTypeArguments()[0];
Method inflateMethod = bindingClass.getMethod("inflate", LayoutInflater.class);
binding = (T) inflateMethod.invoke(null, getLayoutInflater());
setContentView(binding.getRoot());
} catch (Exception e) {
e.printStackTrace();
}
}
}
使用时:
public class MainActivity extends BaseActivity<ActivityMainBinding> {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 使用binding
}
}
验证结果:无用
经过测试,使用上述封装方式并不能提高代码复用率,反而增加了代码量,降低了开发效率。
深究
ViewBinding的使用特点
ViewBinding的使用特点决定了其封装的无用性。ViewBinding本质上是一种代码生成技术,用于自动生成将视图与代码绑定在一起的代码。这种自动生成的代码通常非常冗长,而且与特定的布局文件强绑定,难以复用。
代码复用的局限性
代码复用是软件工程中提高开发效率的重要手段,但代码复用也存在一定的局限性。对于ViewBinding的使用封装来说,由于ViewBinding代码与特定的布局文件强绑定,因此其复用性非常有限。
过度封装的危害
过度封装会给代码维护带来很大的不便。当需要修改某个布局文件时,如果ViewBinding代码被过度封装,那么就需要修改多处代码,这无疑增加了维护难度。
优化开发效率的思路
既然ViewBinding的封装无用,那么我们应该如何优化开发效率呢?
以下是一些建议:
- 避免过度封装ViewBinding。
- 将ViewBinding代码与布局文件放在同一个文件中。
- 使用代码生成工具来生成ViewBinding代码。
- 使用ViewBinding库来简化ViewBinding的使用。
结语
通过对ViewBinding的使用封装问题的探讨,我们得出结论:ViewBinding的封装无用。因此,我们应该避免过度封装ViewBinding,并采用其他优化开发效率的思路。