Tôi tình cờ gặp một thư viện Dependency Injection rất thú vị có tên là . Sử dụng thật dễ dàng để có thể chèn lượt xem vào hoạt động hoặc đoạn.Butterknife Xem tiêm
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...
}
}
Tuy nhiên nếu sử dụng Dependency Injection những lần xem phải public
để Butterknife
có thể tiêm nó (sử dụng private
lĩnh vực kết quả trong một ngoại lệ fields must not be private or static
).
Trong dự án trước đây, tôi luôn làm tất cả các trường thành viên (bao gồm cả chế độ xem) private
vì tôi nghĩ đây là cách thực hành tốt nhất (ẩn thông tin, v.v.) Bây giờ tôi tự hỏi có lý do nào không nên làm tất cả lượt xem public
? Trong trường hợp này tôi không thể sử dụng nhưng tôi muốn sử dụng nó vì nó đơn giản hóa mã rất nhiều.
Không Guice khá nhiều làm điều tương tự tốt hơn nhưng không làm rối tung mã của bạn? –
Tại sao bạn nghĩ nó làm rối tung mã? – Moonlit
@G_V: Có thể, nhưng google nói không sử dụng nó. Xem http://stackoverflow.com/questions/24194283/does-avoid-dependency-injection-frameworks-in-the-android-memory-guide-apply-t và http://stackoverflow.com/questions/5067681/guice -performance-on-android. –