Можно ли проектировать чисто управленческий класс (не предназначенный для реализации) и использовать все статические методы? - PullRequest
1 голос
/ 09 марта 2011

Внутри объекта контейнера я создал класс Factory, который отвечает за сборку двух разных типов массивов: один, содержащий несколько объектов foo, а другой, содержащий несколько объектов bar.

Я планировал назвать их как:

$this->foos = Factory::assemble_foos().

$this->bars = Factory::assemble_bars().

Теоретически Factory также будет вызываться для обновления / удаления явно объявленных объектов / атрибутов, как таковых:

например. Factory::destroy_bar( $bar_id )

например. Factory::update_foo( $foo_id, $attr, $val )

Но я довольно новичок в ООП и PHP, и мне любопытно, какой у меня подход - я понял, что класс Factory является чисто управленческим, и его никогда не предполагалось создавать (или, по крайней мере, никогда не создавать более один раз.)

Есть ли что-то «плохое» в этом подходе, когда есть класс, который состоит исключительно из статических методов и, возможно, из-за некоторых статических атрибутов? Должен ли я перерабатывать свой код, чтобы мой контейнерный объект создавал экземпляр Factory и создавал методы экземпляра моих методов?

Спасибо

1 Ответ

7 голосов
/ 09 марта 2011

Это обычная практика в PHP, она позволяет вам подделывать функции пространства имен.

Одна вещь, которую вы, возможно, захотите сделать, - сделать __construct() приватным, чтобы его нельзя было создать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...