Я работаю над проектом Android, и я столкнулся с этой ситуацией.
У меня есть класс 2:
class A extends B
{
openDoor(){
//impl
}
closeDoor(){
//impl
}
}
class X extends Y{
openDoor(){
//impl
}
closeDoor(){
//impl
}
}
Теперь, если вы заметили, что два метода являются общими для обоих классов openDoor()
и closeDoor()
Каков наилучший способ избежать дублирования методов?
Мой подход
class ContainingDuplicateMethods{
openDoor(){
//impl
}
closeDoor(){
//impl
}
}
}
Создайте объект ContainingDuplicateMethods в обоих классах и вызовите методы, которые мы называем Strategy Pattern, но это лучшее решение? почему, поскольку в крупных проектах мы не можем следовать этому подходу, и люди говорят, что это не ХОРОШАЯ ПРАКТИКА, в таком случае, какой подход мне нужно соблюдать?
Обратите внимание, что class A and X
уже расширяют другие классы, а также я не хочу использовать static, потому что - статические члены загружаются в память при запуске программы и будут находиться в памяти до тех пор, пока программа не будет завершена, скажем, мой код запускается непрерывно в течение нескольких дней или недель и продолжает создавать множество объектов, используя статические ссылки, поэтому может возникнуть вероятность того, что у нас может закончиться нехватка памяти.