У меня есть приложение, готовое и запущенное в магазине Google Play, теперь я реализую фрагменты.Лучший способ избежать дублирования кода при использовании фрагментов
Итак, у меня уже есть класс A, который расширяет B с помощью некоторых методов, теперь у меня есть класс, который C расширяет FragmentActivity, поэтому теперь мне нужно использовать те же методы, что и в классе A, но здесь, поскольку я расширяю FragmentActivity, я не могу сделать использование класса B, поэтому здесь существуют повторяющиеся методы, которые аналогичны классу A, но мне нужно повторно использовать методы.
Это ниже пример показывает мою ситуацию:
Например:
Текущая реализация
class A extends B{
one();
two();
}
После интегрирующих фрагментов,
Например:
class C extends FragmentActivity{
one();// same methods as in class A
two();// same methods as in class A
}
1) Каков наилучший способ повторного использования методов в этом случае и как?
2) У меня есть подход, как создание класса, и статические методы и методы повторного использования в классах A и C, но мой подход хорош, и я могу сделать методы статичными и это хороший подход?
3) Еще один подход, который я подумал о «Шаблон стратегии».
Eg:
class A extends ApiClass {
private ClassContainingDupMethod strategy;
}
class N extends AnotherApiClass {
private ClassContainingDupMethod strategy;
public methodCallingDupMethod(){
strategy.dupMethod();
}
}
class ClassContainingDupMethod{
public dupMethod(){;}
}
Является "Стратегия Pattern". хороший подход? поскольку мне нужно создать объект общего класса в обоих классах.
Любые предложения по этому вопросу будут оценены.
Сделайте свой вопрос более ясным, это поможет нам лучше понять его. –
@ VipulPurohit см. Мое редактирование – Goofy
, вы должны дать больше информации о роли/цели методов один и два. Их можно извлечь как служебные методы, сделать их статическими или использовать «Композицию», где вы включаете ссылку на класс (который имеет эти методы) во всех ваших классах, где вы хотите использовать эти методы. – hovanessyan