Почему они просто не пишут содержание метода onCreate of BaseFragmentActivityHoneycomb внутри FragmentActivity?
Я могу только предположить, что они уменьшают количество проблем FragmentActivity
пытаются следовать принципу единой ответственности в SOLID programming.
Давайте посмотрим на код этого BaseFragmentActivityHoneycomb
:
@Override
public View onCreateView(View parent, String name, Context context, AttributeSet attrs) {
final View v = dispatchFragmentsOnCreateView(parent, name, context, attrs);
if (v == null && Build.VERSION.SDK_INT >= 11) {
// If we're running on HC or above, let the super have a go
return super.onCreateView(parent, name, context, attrs);
}
return v;
}
Хотя это может показаться тривиальным включить, что как блок внутри onCreate
подкласса, то onCreate()
метод FragmentActivity
уже давно 37 строк. Это облегчает понимание для программиста по обслуживанию, если конкретные функции, связанные с совместимостью Honeycomb, находятся в собственном изолированном классе.
Задание «Почему разработчик X принял решение Y?» on Stack Overflow редко бывает полезным. Единственной стороной, которая может окончательно ответить на вопрос, является разработчик X, и маловероятно, что разработчик X увидит этот вопрос. Любой может только предлагать догадки. «Почему вы объявляете класс« абстрактным », если у него нет« абстрактных »методов?» действительно, и вы могли бы привести этот случай в качестве примера. – CommonsWare
Это не обязательно так. Есть несколько вариантов дизайна, которые просто разумны, и более опытный разработчик может посмотреть на них и сказать «хорошо, это очевидно». (Или, может быть, разработчик ** написал о своем решении.) Если это не относится к этому конкретному вопросу, вы должны объяснить, почему. – giusti