Zitat von tr0y
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
[Erledigt] Factory Pattern Einsatz
Einklappen
Neue Werbung 2019
Einklappen
X
-
Zitat von jprangenberg Beitrag anzeigenDie Verhinderung/Beschränkung der Aufrufe zu steuern.
Wenn ich zum Erzeugen von Klassen eine Factory vorgebe, deren Output geändert werden können soll, dann würde es zu Problemen führen, wenn ich die Erzeugung der Objekte nicht kontrollieren kann. Zum Beispiel wenn ich darüber den Zugriff auf das Dateisystem steuern will. Dann würde es wenig helfen, wenn ich zwar an einer zentralen Stelle auf FTP konfigurieren kann, an einigen Stellen dann aber trotzdem LocalFS genutzt wird, weil der Entwickler zu der Zeit nicht davon ausgegangen ist, dass sein Spezialkonstrukthotfix auch an anderen Stellen eingesetzt werden würde...
Kommentar
-
Zitat von BlackScorp Beitrag anzeigenhast du factory verstanden?
PHP-Code:abstract class BasisKlasse{}
class AndereKlasse extends BasisKlasse{}:
class KlasseFactory{
public static function create($class){
return new $class():
}
}
KlasseFactory::create('AndereKlasse'); //instanz von AndereKlasse
KlasseFactory::create('BasisKlasse'); //Exception weil basis abstract ist
[COLOR="#F5F5FF"]--[/COLOR]
[COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
„Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
[URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
[COLOR="#F5F5FF"]
--[/COLOR]
Kommentar
-
Zitat von rkr Beitrag anzeigenWenn ja, warum?
Wenn ich zum Erzeugen von Klassen eine Factory vorgebe, deren Output geändert werden können soll, dann würde es zu Problemen führen, wenn ich die Erzeugung der Objekte nicht kontrollieren kann. Zum Beispiel wenn ich darüber den Zugriff auf das Dateisystem steuern will. Dann würde es wenig helfen, wenn ich zwar an einer zentralen Stelle auf FTP konfigurieren kann, an einigen Stellen dann aber trotzdem LocalFS genutzt wird, weil der Entwickler zu der Zeit nicht davon ausgegangen ist, dass sein Spezialkonstrukthotfix auch an anderen Stellen eingesetzt werden würde...[URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].
Kommentar
-
Wenn du (rkr) es nicht fertig bringst, in einem Projektteam koordiniert zu arbeiten und mit dem Team einen gemeinsamen Pool festzulegen, der definiert, was wie gemacht wird, ist das schade...
Ziel des Programmierens darf es ja nicht sein, alles mögliche zu verhindern, dass nicht so gedacht ist. Sondern Ziel muss es ja sein, eine API so zu dokumentieren, dass ja auch alle diese nutzen.[URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]
Kommentar
-
Zitat von nikosch Beitrag anzeigenHast Du es denn verstanden? Das ist nämlich nur Factory Method.apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]
Kommentar
-
Zitat von BlackScorp Beitrag anzeigenwieso? Factory erzeugt instanz einer klasse, oder einem typen einer klasse durch irgendwelche parameter, wie gesagt, mir sind Pattern sowieso Wayne
Kommentar
-
Zitat von jprangenberg Beitrag anzeigenEine Factory Klasse hat eine factorize() Methode und gibt Objekte eines Interfaces zurück und konfiguriert diese anhand der übergebenen Konfiguration!apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]
Kommentar
-
Zitat von tr0y Beitrag anzeigenWeil die Klasse nicht dafür verantwortlich sein darf fest zu legen wer sie instanziieren kann und wer nicht. Sowas arbeitet mit unnötigen Aufwand gegen die Wiederverwendbarkeit.
Zitat von ChristianK Beitrag anzeigenWenn du (rkr) es nicht fertig bringst, in einem Projektteam koordiniert zu arbeiten und mit dem Team einen gemeinsamen Pool festzulegen, der definiert, was wie gemacht wird, ist das schade...
Zitat von ChristianK Beitrag anzeigenZiel des Programmierens darf es ja nicht sein, alles mögliche zu verhindern, dass nicht so gedacht ist. Sondern Ziel muss es ja sein, eine API so zu dokumentieren, dass ja auch alle diese nutzen.
Kommentar
-
wieso? Factory erzeugt instanz einer klasse, oder einem typen einer klasse durch irgendwelche parameter,
Factory Method sieht die Information als Teil der Fabrikklasse, in der Regel sogar als Teil der Produktklasse vor. Ersteres erzeugt eine ungünstige Abhängigkeit, zweiteres kommt mit den üblichen Problemen statischer Methoden + verstößt gegen das Single-Responsibility-Prinzip.
Die wichtigsten Vorteile von Abstract Factory sind für mich:
-Die Fabrik ist austauschbar
-Die Fabrikinstanz kann zentral konfiguriert werden
-Die Fabrikinstanz kann als Objekt abgelegt und wiederverwendet werden
-Die Fabrikklasse muss nicht umgeschrieben werden und ist ableitbar
-Die Fabrikklasse kann per Autolader geladen werden
-Auf Wunsch lässt sich die Fabrikinstanz als Singleton-Instanz anlegen und wiederverwenden (praktisch zum Beispiel für aufwendig zu initiierende Fabriken oder für Fabriken mit Abhängigkeiten wie Datenbankinstanzen)
wie gesagt, mir sind Pattern sowieso Wayne[COLOR="#F5F5FF"]--[/COLOR]
[COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
„Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
[URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
[COLOR="#F5F5FF"]
--[/COLOR]
Kommentar
-
Zitat von nikosch Beitrag anzeigenNatürlich die beste Basis für eine Diskussion
desswegen will ich hier mit niemanden diskutieren, werde einfach zu alt um mir die genauen feinheiten auswendig zu lernen und es irgendwann sowieso vergessen da man es nicht staendig braucht
nicht boese gemeint, bin einfach nur deprimiertapt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]
Kommentar
-
Zitat von BlackScorp Beitrag anzeigenund dann faengste an zu Arbeiten und siehst sehr viel Legacy Code und hoerst staendig "Es waere zu aufwaendig","Es wuerde sich nicht lohnen","Wir brauchen ein Meeting"[URL="http://goo.gl/6Biyf"]Lerne Grundlagen[/URL] | [URL="http://sscce.org/"]Schreibe gute Beispiele[/URL] | [URL="http://goo.gl/f2jR7"]PDO > mysqli > mysql[/URL] | [URL="http://goo.gl/jvfSZ"]Versuch nicht, das Rad neu zu erfinden[/URL] | [URL="http://goo.gl/T2PU5"]Warum $foo[bar] böse ist[/URL] | [URL="http://goo.gl/rrfzO"]SQL Injections[/URL] | [URL="http://goo.gl/Q81WJ"]Hashes sind keine Verschlüsselungen![/URL] | [URL="http://goo.gl/2x0e2"]Dein E-Mail Regex ist falsch[/URL]
Kommentar
-
Zitat von ApoY2k Beitrag anzeigenSchön zu sehen, wie die Illusionen so vor dir wegschwimmen, ne?apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]
Kommentar
-
Man muss halt auch mal konsequent sein und sich durchsetzen. Gute Argumente gibts genug. Und Softwarewartung müsst Ihr sicher auch machen.[COLOR="#F5F5FF"]--[/COLOR]
[COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
„Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
[URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
[COLOR="#F5F5FF"]
--[/COLOR]
Kommentar
Kommentar