В настоящее время я пишу свой первый проект Android, который я хочу реорганизовать в соответствии с шаблоном внедрения зависимостей.Начиная с самого простого действия в моем приложении - заставки - я спрашиваю себя, правильно ли я понял идею шаблона.
На данный момент это код моего SplashActivity
:
public class SplashActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
Fragment fragmentToDisplay = null;
if (!(getIntent().getBooleanExtra("isLaunch", true))) {
fragmentToDisplay = new LoginFragment();
} else {
if (savedInstanceState == null) {
fragmentToDisplay = new SplashFragment();
}
}
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, fragmentToDisplay).commit();
}
}
В зависимости от содержимого IntentExtra "isLaunch"
Я хочу отобразить другой фрагмент.Теперь я прочитал, что каждый new ServiceXY()
делает код менее тестируемым, что на самом деле не является целью внедрения зависимости.Поэтому я реорганизовал свой код следующим образом:
public class SplashActivity extends AppCompatActivity {
private SplashFragment splashFragment;
private LoginFragment loginFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
splashFragment = new SplashFragment();
loginFragment = new LoginFragment();
Fragment fragmentToDisplay = null;
if (!(getIntent().getBooleanExtra("isLaunch", true))) {
fragmentToDisplay = loginFragment;
} else {
if (savedInstanceState == null) {
fragmentToDisplay = splashFragment;
}
}
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, fragmentToDisplay).commit();
}
}
Однако, похоже, это не имеет большого значения.Как это улучшает тестируемость моего кода, если я хочу проверить, отображается ли правильный фрагмент?Спасибо вперед.