Статические классы, наследуемые от абстрактного класса в PHP - PullRequest
0 голосов
/ 11 октября 2011

Я наткнулся на интересную проблему / ошибку, которую я в итоге решил, но решение не то, что я ожидал или хотел бы, чтобы оно было.

Настройка проста. Существует абстрактный статический класс Factory , который имеет ссылку на синглтон ( Registry ), а также два статических свойства: модель и таблица .

Существует ряд статических классов, основанных на / наследующих от этого абстрактного класса, и у всех них есть метод init () , в котором они устанавливают таблицы model и свойства. Конечно, поскольку модель и таблица являются статическими, они могут иметь только одно значение, одинаковое для всех дочерних классов абстрактного Factory класса. Это проблема / ошибка.

Однако моя цель состоит в том, чтобы каждый дочерний класс имел свою собственную модель и таблицу , поэтому я вынужден объявить модель и таблицу в каждом дочернем классе как статическое свойство. Это кажется немного громоздким (и не очень СУХОЙ), но мне кажется, что это единственное решение, если я хочу, чтобы (1) классы наследовали от абстрактного Factory класса и (2) остались статичный.

Правильно ли мое предположение или я упускаю другой подход?

1 Ответ

1 голос
/ 11 октября 2011

Цель состоит в том, чтобы иметь разные значения $model и $table в разных статических дочерних классах?

Предполагая, что это так, я не понимаю, как Вы могли бы достичь этого, не определяя их явно в каждом дочернем классе.

Я не думаю, что это громоздко. Я считаю это хорошей практикой - сохраняя функциональность там, где она есть.

...