为侦听器创建单独的类有什么好处或者有没有?下面哪个代码更有效?为什么?我应该何时创建单独的类?
TextWatcher
的单独类mEditText.addTextChangedListener(mNumberWatcher);
TextWatcher mNumberWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
}
};
没有单独的课程
mEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
}
});
答案 0 :(得分:1)
当你需要在我们的代码中多次使用相同的监听器时,你应该为监听器使用单独的类,很多都没有。课程。
答案 1 :(得分:0)
您应该创建一个单独的类或内部静态,它们可以适应您的设计模式。正常的内部类或Anonymous
实例化能够导致内存泄漏,因为它们包含主类的引用,并且可能不允许GC
收集它,您应该避免使用它们。