什么是更好的编码实践,使用工具或方法

What is a better coding practice , use implements or methods

我在 android 中使用导航抽屉,并且我已经构建了两种方式的侦听器。 但在所有编程代码中,如何编写更好的代码?

1) 第一个方法我实现了一个class

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{  

 NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);

@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
//CODE
}
}

2) 在第二种方式中我只使用了一个实例。

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(
            new NavigationView.OnNavigationItemSelectedListener() {
                @Override
                public boolean onNavigationItemSelected(MenuItem menuItem) {
                    //CODE
                }
            }
    );

您认为哪个更好,为什么? 谢谢=)

实际上,选择其中一个是您个人品味、MainActivity 的职责以及性能的结合。

我通常赞成组合,并尽量避免将很多责任混在同一个class中。您正在实现的侦听器可以隐藏在工厂或其他东西后面,使 MainActivity 的代码更简单,更易于维护。

关于性能,你可能应该选择你的第一选择,但事实上,再实例化一个class应该不会有任何显着影响。

在这种情况下,我总是使用第一种方法,因为在方法 onAttach 的内部片段中,我可以检查 activity 以实现与此片段交互所需的接口,例如,抛出异常作为信号,你必须实现接口。除此之外,在这种情况下你不需要编写像 setListener 这样的方法。当然,这是我对这个具体案例的恕我直言。

实际上这完全取决于您的实施。

1)对于情况 1,假设您正在为视图实现 class。然后,您将只能在 class.

中使用一次已实现的方法

2)案例 2 允许您创建多个函数。

View.OnClickListener为例,如果你实现这个,你将能够在class中只使用一次onClick方法。因此,此 class 内的所有视图都将使用相同的 onClick 方法。

public class MainActivity implements View.OnClickListener {
    public void onClick(View v) {
        .... 
    } 
 }

但如果您将使用 setOnClickListener() ,则每次都可以实现不同(或相同)的方法。