Правильный способ передачи группы параметров в класс - PullRequest
0 голосов
/ 13 декабря 2011

У меня есть что-то вроде этого

class Demo
{
    public function __construct()
    {
    }
}

и мне нужно передать набор параметров (до 20) в демонстрационный класс (имя, адрес электронной почты, адрес и т. Д.).

ОтНасколько я знаю, есть 2 способа сделать это:

первый путь - передать массив:

$params = array('name' => 'test', 'email' => 'test' ... );
$demo = new Demo($params);

, затем изменить конструктор на __conctruct ($ data).

Второй способ - создать сеттер для каждого параметра, поэтому мы делаем что-то вроде этого:

$demo = new Demo();
$demo->setName('test');
$demo->setEmail('test@test.com');

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

Редактировать: конечно, мы можем передавать параметры напрямую $ demo = new Demo ('test', 'test@test.com' ...), но вам нужно знатьпорядок параметров, которые могут быть проблемой.

1 Ответ

0 голосов
/ 13 декабря 2011

Дополняя ваш второй способ, вы всегда можете связать свои сеттеры.

class Foo {
public function setA($a) {
    $this->a = $a;
    return $this;
}

public function setB($b) {
    $this->b = $b;
    return $this;
}
}

$foo = new Foo();
$foo->setA('a')->setB('b');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...