Hallo zusammen,
Aktuell bin ich am PHP programmieren lernen und ich habe da eine Frage zum Factory Design Pattern.
Ich verstehe nach vielen stunden recherchieren das Factory Pattern immer noch nicht ganz und wäre froh wenn mich jemand aufklären könnte.
Bis an hin verstehe ich das so:
Ich habe eine Klasse, nennen wir diese loginHandler.
In dieser klasse mache ich mehrere Instanzen/Objekte auf. z.B:
Anstatt dass ich nun jetzt z.B. in einer anderen Klasse auch wieder das HashPassword Objekt benötige, und es wieder einbinden muss kann ich doch eine Factory Class machen in welcher ich dann machen kann:
somit muss ich im Handler nur noch die Class Factory einbinden und kann dann getHasher machen ?
Verstehe ich das richtig oder liege ich hier falsch...
Die ganzen Beispiele mit den Autos usw. verstehe ich überhaupt nicht...
PS: noch eine andere Frage..
Mein Valueobject sollte keine Logic enthalten. Weiter unten werdet Ihr einen Teil von mienem ValueObject sehen. Kann ich das irgendwie verbessern?
Aktuell bin ich am PHP programmieren lernen und ich habe da eine Frage zum Factory Design Pattern.
Ich verstehe nach vielen stunden recherchieren das Factory Pattern immer noch nicht ganz und wäre froh wenn mich jemand aufklären könnte.
Bis an hin verstehe ich das so:
Ich habe eine Klasse, nennen wir diese loginHandler.
In dieser klasse mache ich mehrere Instanzen/Objekte auf. z.B:
Code:
public function __construct()
{
$this->databaseWrapper = new DatabaseWrapper;
$this->passwordHasher = new HashPassword($this->enteredPassword);
$this->getUserValues = new UserFromDatabase($this->enteredUsername);
}
Code:
public function getHasher() {
return new HashPassword($this->enteredPassword)
}
Verstehe ich das richtig oder liege ich hier falsch...
Die ganzen Beispiele mit den Autos usw. verstehe ich überhaupt nicht...
PS: noch eine andere Frage..
Mein Valueobject sollte keine Logic enthalten. Weiter unten werdet Ihr einen Teil von mienem ValueObject sehen. Kann ich das irgendwie verbessern?
Code:
public function __construct($username)
{
$this->selectUserFromDatabasequery = new SelectUserFromDatabaseQuery;
$this->user = $this->selectUserFromDatabasequery->execute($username);
}
public function getUsername()
{
return $this->user['username'];
}