Образец строителя большой

Я работаю над проектом с некоторыми большими объектами DTO. Поэтому я стараюсь использовать строителей, но теперь их строитель становится слишком большим.

class foo
{
private $bar1;
private $bar2;
private $bar3;
private $bar4;
private $bar5;
private $bar6;
private $bar7;
private $bar8;
...

public function __construct(fooBuilder $builder)
{
$this->bar1 = $builder->getBar1()
}
...
}

class fooBuilder
{
private $bar1;
private $bar2;
private $bar3;
private $bar4;
private $bar5;
private $bar6;
private $bar7;
private $bar8;
...

/**
* @return mixed
*/
public function getBar1()
{
return $this->bar1;
}

/**
* @param mixed $bar1
* @return fooBuilder
*/
public function setBar1($bar1)
{
$this->bar1 = $bar1;

return $this;
}
...
}

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

Другой вопрос, который у меня есть, как я могу написать содержательный модульный тест для этого?

0

Решение

Чтобы уменьшить количество получателей или установщиков, вы можете использовать магические методы:

использование __set() для сеттеров и __get() для сеттеров.

Вот пример: 

public function __set($property,$value) {
$this->$property = $value;
}

public function __get($property) {
return $this->$property;
}

Если вы хотите получить данные вашего атрибута, просто вызовите его с

$object->attribute;

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

bool property_exists (mixed $class, string $property)

Вы можете проверить документацию здесь:
http://php.net/property-exists

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector