Работа с классами

Crazy

Developer
Lews, аргумент здесь стандартный (хоть и не очень сильный): возможность name clashes. Разные модули могут случайно заюзать одну глобальную переменную в разных целях и это трудно отловить.

Если же пересекутся два имени классов --- это сразу заметно.
 

Lews

Новичок
Прошу прощения, не совсем понял...

Каких классов имена пересекутся? В данном посте был описан всего один статический класс...
Или для другого модуля будет описан еще один такой же?:confused:
 

Lews

Новичок
Тогда я вобще не понимаю смысла - описывать еще раз абсолютно такой же класс, но с другим именем....
Может все таки проще:

$GLOBAL['module1']['a'] = new SomeClass();
$a = $GLOBAL['module1']['a'];
isset($GLOBAL['module1']['a']);
unset($GLOBAL['module1']['a']);

$GLOBAL['module2']['a'] = new SomeClass();
........... ?

Или я все таки чего-то не понимаю?
 

Lews

Новичок
Вобще, интересовался у автора того полезного статического класса.
 

T. Anre

Новичок
Crazy , мне интересно как вы мыслите.

Вы согласны с этой фразой?
Полиморфизм в ООП означает возможность применения одноименных методов с одинаковыми или различными наборами параметров в одном классе или в группе классов, связанных отношением наследования.
Если да, то почему вы считаете, что полиморфное поведение достигается только через переопределение. По каким причинам невозможно достичь полиморфного поведения через перегрузку?

Как вы понимаете статический и динамический полиморфизмы?
 

Crazy

Developer
Автор оригинала: T. Anre
Вы согласны с этой фразой?
Нет. Не согласен. Основной признак полиморфизма -- возможность прозрачного использования объекта одного класса вместо объекта другого класса.

В частности, поэтому я считаю, что:

что полиморфное поведение достигается только через переопределение.
Перейдем теперь ко второму вопросу:

Как вы понимаете статический и динамический полиморфизмы?
Так называемый динамический полиморфизм, он же просто полиморфизм -- это то, что я описал выше.

Так называемый статический (и плюс к нему -- параметрический) полиморфизм представляет собой наследие до-объектного программирования и к ООП не имеет вообще никакого отношения. Когда мы имеем дело с этим видом так называемого полиморфизма, мы в 100% случаев твердо знаем, с каким классов/типом имеем дело. Соответственно, ничего полиморфного в этом нет.

Все свойства этого вида "полиморфизма" реализуются в до-объектных языках. Где, собственно, они и возникли.
 
Сверху