2016-05-11 3 views
0

Я хочу знать, может ли конструктор делать «углубленные» вещи, просто инициализации. Рассмотрим это:Ответственность конструктора, насколько это возможно?

class Entity 
{ 
    private $data; 

    public function __construct(array $datasAlready) 
    { 
     $this->json_encode($datasAlready); 
    } 
} 

exising в Entity бессмысленно, если не $data не был заполнен. Таким образом, я принудительно загружаю это. Но мой босс сказал его не в порядке, конструктор идеально будет делать только базовые inicializations, так:

class Entity 
{ 
    private $data; 

    public function __construct(array $datasAlready) 
    { 
     $this->data = array(); 
    } 

    public function load(array $datasAlready) 
    { 
     $this->json_encode($datasAlready); 
    } 
} 

или даже конструктор не требуется. Но таким образом я пропускаю принуждение к инициализации. Что делать, если я начну использовать этот объект, если он не заполнен?

ответ

1

Конструктор почти как нормальная функция, и вы можете делать что-нибудь внутри него. Но это не лучшая практика.

Если вы не описываете конструктор в классе, будет использоваться пустой конструктор по умолчанию.

Смежные вопросы