Slide 1

Slide 1 text

@cocoders Hermetyzacja

Slide 2

Slide 2 text

@cocoders Nie możemy zmieniać stanu w nieoczekiwany sposób

Slide 3

Slide 3 text

@cocoders $clinic->setTaxIdNumber('9562307984'); $clinic->setName('Cocoders'); $clinic->addEmployee((new Employee())- >setFirstName('Leszek'))); $clinic->getEmployees()->add((new Employee())->setFirstName('Szymon')); vs $clinic = new Clinic('Cocoders', ' 9562307984'); $clinic->hire(new Candidate('Leszek')); $clinic->hire(new Candidate('Szymon')); Gettery i settery a hermetyzacja

Slide 4

Slide 4 text

class Clinic { public function setName($name) { $this->name = $name; return $this; } public function getName() { return $this->name; } //... } @cocoders Anemic model

Slide 5

Slide 5 text

class Clinic { public function __construct($name, TaxIdNumber $taxIdNumber) { $this->name = $name; $this->taxIdNumber = $taxIdNumbr; } public function hire(Candidate $cadidate) { if ($this->employeeAlreadyExists($candidate->getTaxIdNumber())) { throw new \LogicException(sprtinf('We found %s employee already in clinic', $candiate->getTaxIdNumber())); } $this->employees[] = Employee::createFromCandiate($candidate); } } @cocoders Model zhermetyzowany

Slide 6

Slide 6 text

@cocoders Dzięki