我偶然发现了一个非常有趣的依赖注入库,名为ButterKnife
. 使用ButterKnife
它很容易将视图注入到活动或片段中。
class ExampleActivity extends Activity {
@InjectView(R.id.title) TextView title;
@InjectView(R.id.subtitle) TextView subtitle;
@InjectView(R.id.footer) TextView footer;
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simple_activity);
ButterKnife.inject(this);
// TODO Use "injected" views...
}
}
但是,如果使用依赖注入,这些视图必须public
能够Butterknife
注入它(使用private
字段会导致异常fields must not be private or static
)。
在我过去的项目中,我总是制作所有成员字段(包括视图)private
,因为我认为这是最佳实践(信息隐藏等)。现在我想知道是否有理由不制作所有视图public
?在这种情况下,我不能使用ButterKnife
,但我想使用它,因为它大大简化了代码。