Я наткнулся на очень интересную библиотеку Injection Dependency под названием 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...
}
}
Однако, если вы используете Dependency Injection, эти представления должны быть public
, чтобы ButterKnife
мог его вводить (используя поля private
, приводит к исключению fields must not be private or static
).
В моем прошлом проекте я всегда делал все поля членов (включая представления) private
, поскольку я думал, что это лучшая практика (скрытие информации и т.д.). Теперь мне интересно, есть ли причина, по которой не следует делать все взгляды public
? В этом случае я не могу использовать ButterKnife
, но я хочу использовать его, потому что он значительно упрощает код.