Last active
December 27, 2017 12:11
-
-
Save jroenf/f18819860c978772b64171fd59699388 to your computer and use it in GitHub Desktop.
Kleine opdracht met vragen
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace Di; | |
class TranslateRobot | |
{ | |
public $message; | |
public function __construct($robotMessage = 'The translation of the word is: ') | |
{ | |
$this->message = $robotMessage; | |
} | |
protected $dictionaryNl = [ | |
'yes' => 'ja', | |
'no' => 'nee', | |
]; | |
protected $dictionaryRu = [ | |
'yes' => 'da', | |
'no' => 'njet', | |
]; | |
public function translate($text, $language) | |
{ | |
switch ($language) { | |
case 'du': | |
$translation = $this->dictionaryNl[$text]; | |
break; | |
case 'ru': | |
$translation = $this->translateRussian($text); | |
break; | |
case 'ge': | |
$translation = $this->translateGerman($text); | |
break; | |
} | |
return $this->message . $translation; | |
} | |
protected function translateRussian($text) | |
{ | |
return $this->dictionaryRu[$text]; | |
} | |
protected function translateGerman($text) | |
{ | |
return $this->searchOnlineTranslationGerman($text); | |
} | |
protected function searchOnlineTranslationGerman($text) | |
{ | |
return 'ja oder nein'; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Het is een translate Robot. Een robot die niet alleen de vertaling maar een vriendelijke volzin terug geeft. | |
Uiteraard zit er 'in' de robot een pure vertaler van woord -> woord. | |
- Wat kan je zeggen over deze class, wat zie je? | |
- Wat is het gevaar van de public property? | |
- Wat is het verschil tussen protected / private | |
- Vertel iets over de verantwoordelijkheden van deze class. | |
- Hoe zou je die verantwoordelijkheden (puur vertalen vs. vertaling met leuke boodschap erbij) kunnen opsplitsen? Ga aan de knoppen zitten en schrijf die classes. | |
- Krijg je altijd een translation? Kan je een default intsellen? Is dat verstandig? | |
- Implementeer de 3 cases in 3 extensions van deze class, verwijder het $language argument. | |
- Zou je een method abstract kunnen maken? | |
- Een andere wijze is om de 3 robots te maken, en elke robot de juiste translator te geven: kan je iets vertellen voer DI, inversion of control? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment