Я наткнулся на очень интересную библиотеку инъекций Dependency под названием . Используя , можно легко вводить виды в действия или фрагменты.Butterknife View injection
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
? В этом случае я не могу использовать , но я хочу использовать его, потому что он значительно упрощает код.
Разве Guice в значительной степени не делает то же самое лучше, но не испортил ваш код? –
Почему вы думаете, что это испортило код? – Moonlit
@ G_V: Может быть, но Google говорит, что не использовать его. См. Http://stackoverflow.com/questions/24194283/does-avoid-dependency-injection-frameworks-in-the-android-memory-guide-apply-t и http://stackoverflow.com/questions/5067681/guice -performance-на-андроид. –