Android 为侦听器创建单独的类

Android 为侦听器创建单独的类,android,class,listener,textwatcher,Android,Class,Listener,Textwatcher,为监听器创建单独的类有什么好处?或者有什么好处?下面哪段代码更有效?为什么?我应该什么时候创建单独的类 TextWatcher的单独类 mEditText.addTextChangedListener(mNumberWatcher); TextWatcher mNumberWatcher = new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence,

为监听器创建单独的类有什么好处?或者有什么好处?下面哪段代码更有效?为什么?我应该什么时候创建单独的类

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) {

        }
    });

当listener需要在我们的代码中多次使用同一个listener时,您应该为它使用单独的类,在许多类中。

您应该创建一个单独的类,或者创建一个适合您的设计模式的内部静态类。正常的内部类或
匿名
实例化可能会导致内存泄漏,因为它们持有主类的引用,并且可能不允许
GC
收集它,您应该避免使用它们

使用分离类可以提高代码的可读性,也可以将该实例用于其他侦听器。@Virgoir如果我没有多次使用侦听器代码,那么我应该使用分离类吗?它会影响性能吗?不,它没有任何性能泄漏。@Virgoir,如果我没有创建单独的类,有什么缺点吗?如果我没有多次使用listener,那么我应该使用单独的类吗?它会影响性能吗?如果你没有多次使用它,那么就不需要创建单独的类。它不会有性能问题。