У меня уже есть эта рабочая иерархия, и программа работает так, как ожидалось. В основном я отвлек все в базовом классе, а все остальные подклассы добавляют свои собственные методы.Применимый шаблон проектирования
abstract Class Base{
}
class A extends Base{
//new methods
}
class B extends Base{
//new methods
}
все выглядит хорошо, пока позже (эээ ... новые требования) Я понимаю, что нужно иметь новый класс (назовем этот класс С), который проходит как класса А и В. Теперь, на Яве его невозможно расширить два конкретных класса.
class C extends A, B{
//new methods
}
Мне нужны оба метода и переменные в классе A и классе B, но я не знаю, как это сделать? Любые подсказки о том, как мне это сделать? Я не так хорош в дизайне, поэтому я подумал просить его здесь.
Благодаря
UPDATE Это на самом деле JSF Managed Bean, в котором я отведенной все в базе Managed Bean и всех других подклассов переопределением/добавления своих собственных реализаций на верхней части основания управляемый компонент. Существует только новое требование, которое было добавлено в котором я нуждался функциональность обоих подклассов (А и В) в новый подкласс (C)
Трудно сказать, не говоря уже о том, что делают классы, но похоже, что вам будет лучше с компонентным дизайном. –
Вам нужны методы, но есть ли отношение 'C является A и B' необходимым? Вы можете использовать композицию, но ваш пост нуждается в дополнительной информации, чтобы узнать, подходит ли это. –
Yeh рассматривает состав и имеет 'C' содержат экземпляры' A' и 'B'. –