Два abstract класса - переход на навую версию

Активист

Активист
Команда форума
Два abstract класса - переход на навую версию

Подскажите, пожалуйста.

Есть классы
pagesModel - описывает модель поведения модуля
moduleModel - абстартный класс, в котором описаны основные процецуры и процедуры инициализации модели модулей системы

Задача - не изменяя класс pagesModel, подключить в moduleModel новый абстрактный класс moduleModel_v2, в котором будет подругому описываться практически некторые фукнции.

Другими словами, был один абстрактный класс, потом решили полностью его поменять, но нужно оставить совместимость со старым кодом.
 
был один абстрактный класс, потом решили полностью его поменять, но нужно оставить совместимость со старым кодом.
т.е. есть класс pagesModel - производный от moduleModel
и ты теперь написал moduleModel_v2 и все новые классы будут от него производными. Ну чтож - флаг в руки.

ИМХО - это плохо, поддерживать два стиля (не найду более подходящего термина) одновременно.
понятно, что переделывать половина кода не хочется, да и не нужно.

не видя кода - вряд ли Отцы Русской Демократии тебе помогут.
 
Активист подробнее раскрой кто от кого наследуется и по какой причине меняешь (прототипы меняются или реализация). И плз поменьше слова, начинающихся на мод*, а то в глазах рябит.
 
Активист
Если проблема в type-hinting, попробуй использовать интерфейсы вместо абстрактных классов. Если же нужно сохранить реализацию и того и другого класса - mixin (агрегация + __call())
 
Сверху