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

Активист

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

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

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

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

Другими словами, был один абстрактный класс, потом решили полностью его поменять, но нужно оставить совместимость со старым кодом.
 

Alexandre

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

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

не видя кода - вряд ли Отцы Русской Демократии тебе помогут.
 

whirlwind

TDD infected, paranoid
Активист подробнее раскрой кто от кого наследуется и по какой причине меняешь (прототипы меняются или реализация). И плз поменьше слова, начинающихся на мод*, а то в глазах рябит.
 

crocodile2u

http://vbolshov.org.ru
Активист
Если проблема в type-hinting, попробуй использовать интерфейсы вместо абстрактных классов. Если же нужно сохранить реализацию и того и другого класса - mixin (агрегация + __call())
 
Сверху