06/2016 / Milan "perún" Herda / @moriquend / prezentacie.perunhq.org
Príklady prebrané z knihy Principles of Package DesignSkratka predstavujúca 5 základných princípov dobrého softvérového návrhu
Trieda by mala mať jeden (a iba jeden) dôvod pre svoju zmenu.
public
) metód v triede
class ConfirmationMailer
{
private $templating;
private $translator;
private $mailer;
public function __construct(TemplatingInterface $templating, TranslatorInterface $translator, MailerInterface $mailer)
{
$this->templating = $templating;
$this->translator = $translator;
$this->mailer = $mailer;
}
public function sendTo(User $user)
{
$message = $this->createMessageFor($user);
$this->sendMessage($message);
}
private function createMesageFor(User $user)
{
$subject = $this->translator->translate('Confirm your email address');
$body = $this->templating->render(
'confirmationEmail.tpl',
[
'user' => $user,
]
);
$message = new Message($subject, $body);
$message->setTo($user->getEmailAddress());
return $message;
}
private function sendMessage(MessageInterface $message)
{
$this->mailer->send($message);
}
}
Táto trieda má dve zodpovednosti a teda aj dva dôvody pre zmeny
Skúsime triedu zrefaktorovať.
Zdrojové súbory tu