|
|
|
| В классе B нужно использовать класс A, и есть 2 стандартных способа:
<?php
class A{ ...}
class B
{
__construct()
{
$this->objectA = new A();
}
}
|
<?php
class A{ ...}
class B extends A{ ...}
|
Что посоветуете господа эксперты? В каком случае что эффективнее использовать? | |
|
|
|
|
|
|
|
для: STEVER
(30.01.2010 в 17:53)
| | Сам в ООП не эксперт, но свой вяк сказать хочется.
Если чисто по логике смотреть (не углубляясь в реализацию этого на уровне самого php), то лучше все-таки наследование, т.к. потом будет создан объект класса B. А если в классе B создавать объект класса A, то получится, что в скрипте создано два объекта от двух разных классов, т.е., по идее, это бОльшая нагрузка, нежели один объект =) | |
|
|
|
|
|
|
|
для: neadekvat
(30.01.2010 в 18:06)
| | хм.
ну если смотреть просто по логике, то от перестановки слагаемых сумма не меняется. | |
|
|
|
|
|
|
|
для: STEVER
(06.02.2010 в 17:58)
| | Это почему же? Результат-то разный в итоге: в оперативной памяти создается только один объект, а не два. | |
|
|
|
|
|
|
|
для: STEVER
(30.01.2010 в 17:53)
| | А что нужно-то? Это декоратор? Или ООП ради ООП? | |
|
|
|
|
|
|
|
для: Тень
(30.01.2010 в 18:08)
| | для меня все это ооп лишь способ использовать иное пространство имен | |
|
|
|
|
|
|
|
для: Красная_шляпа
(30.01.2010 в 20:08)
| | В PHP 5.3.0, кстати, ввели пространства имён. | |
|
|
|
|
|
|
|
для: Тень
(30.01.2010 в 20:28)
| | хм, неужели никто не знает/ не хочет дать ответа? | |
|
|
|
|
|
|
|
для: STEVER
(06.02.2010 в 17:53)
| | В вашем случае оба варианта равнозначны. | |
|
|
|