
Ihor
24.04.2018
12:33:43
Как вы смотрите, с точки зрения ООП, на конструктор в абстрактном классе?)

Гена
24.04.2018
12:38:56
прекрасно

Artem
24.04.2018
12:52:01
а что смущает?

Гена
24.04.2018
13:02:11
главное еще сделать в конструкторе вызов абстрактной функции например init() , которая будет описана в конечном классе и дополнительно инициализировать объект
abstract class MyClass {
public function __construct($data)
{
// Готовим данные абстрактного класса, сетим основные данные
// .......
// Готовим или подменяем данные уже в наследнике
$this->init($data);
}
abstract protected function init($data);
}

Google

Артур Евгеньевич
24.04.2018
13:06:08

Mykola
24.04.2018
13:06:38
а я так и не разобрался в конструкторах...
сложно

Roman
24.04.2018
13:06:59

Артур Евгеньевич
24.04.2018
13:07:41
ее не должно быть в асбтракции

Roman
24.04.2018
13:09:01
ее не должно быть в асбтракции
перефразирую вопрос, если уже есть абстрактный класс в котором уже есть реализация каких то методов, то чем добавление конструктора ухудшит что то?

Mykola
24.04.2018
13:09:58

Max
24.04.2018
13:10:01

Mykola
24.04.2018
13:10:18
по этому добавление явного конструктора ничего не поменяет с точки зрения дизайна абстрактного класса

Max
24.04.2018
13:10:26
ну и да как и говорилось раньше это деталь реализации

Roman
24.04.2018
13:11:40

Google

Max
24.04.2018
13:13:24

Артур Евгеньевич
24.04.2018
13:14:16

Гена
24.04.2018
13:15:24

Max
24.04.2018
13:16:56
те полиморфизм здесь не причем
так как реализация метода нужна только для инциализации объекта

Артур Евгеньевич
24.04.2018
13:18:01
ну я просто предположил, я ни трейты, ни протектед ни абстрактные классы не юзаю обычно)

Max
24.04.2018
13:20:14
ну и абстрактные protected методы это больше про реализацию

Артур Евгеньевич
24.04.2018
13:27:37
нет, делю ответственности и юзаю аггрегацию

Maksim
24.04.2018
13:27:50
тот неловкий момент, когда ощущаешь себя недочеловеком: и абстрактные классы, и конструкторы в оных, и протектед методы - усё есть)

Sergey
24.04.2018
14:09:13

Maksim
24.04.2018
14:09:33

Артур Евгеньевич
24.04.2018
14:09:50

Sergey
24.04.2018
14:10:22

Maksim
24.04.2018
14:10:38

Sergey
24.04.2018
14:10:55
с другой стороны если мы закроем глаза на необходимость "пробрасывать" зависимости базового типа, и весь стэйт private то как бы не то что бы и сильно плохо

Ihor
24.04.2018
14:11:32

Sergey
24.04.2018
14:11:33

Google

Sergey
24.04.2018
14:12:28
ну и я бы лучше скопипастил конструктор)
это не будет дублированием в общем

Maksim
24.04.2018
14:12:50

Sergey
24.04.2018
14:13:09
хер знает кто потом будет ими пользоваться и завяжет свой код на них

Maksim
24.04.2018
14:14:39
блин) без кода тяжко)
я не понимаю в чём эфимерная сложность возникает и как всё это можно сравнивать с глобалами :(

Sergey
24.04.2018
14:21:02

Maksim
24.04.2018
14:24:09
угу, с примером стало понятнее)