Changes between Version 9 and Version 10 of lecture_faq
- Timestamp:
- 03/24/2015 10:57:20 PM (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
lecture_faq
v9 v10 61 61 62 62 == Wann sollte Global State verwendet werden? == 63 Global State/Singletons sollten nur verwendet werden, wenn es unbedingt notwendig ist. Formen von globalem State existieren in jedem System und können einen auch über Prozessgrenzen hinweg beissen. Das ist vergleichbar mit der Situation heute, in dem die Instanz der Spielwelt an einer globalen Stelle gebunden wurde. Jeder andere, der diese Stelle schreibt (nicht nur ein fremdes Stück Code, sondern eben auch eine zweite Instanz des Spiels) kann somit Probleme verursachen.63 Global !State/Singletons sollten nur verwendet werden, wenn es unbedingt notwendig ist. Formen von globalem State existieren in jedem System und können einen auch über Prozessgrenzen hinweg beissen. Das ist vergleichbar mit der Situation heute, in dem die Instanz der Spielwelt an einer globalen Stelle gebunden wurde. Jeder andere, der diese Stelle schreibt (nicht nur ein fremdes Stück Code, sondern eben auch eine zweite Instanz des Spiels) kann somit Probleme verursachen. 64 64 65 65 … … 69 69 b) ausreichend komplex sind (die wenigstens Programm sind trivial) 70 70 c) für jemanden einen bestimmten Wert haben (häufig wird hier natürlich der finanzielle Aspekt genannt aber es gibt auch genug andere Gründe (z.B. will jemand Monkey Island wieder auf dem iPad zum Laufen bekommen oder ihr entwickelt den internen Squeak Browser weiter damit die Community ihn wieder nutzen kann)). 71 Der Hinweis aus der Vorlesung diesen Begriff vorsichtig zu verwenden, bezieht sich auf den Aspekt, dass “Legacy” in der Informatik einen negativen Aspekt im Sinne von “Altlast” beinhaltet. Da ihr natürlich bestehende Softwareprojekte nicht unbedingt beleidigen wollt, solltet ihr das im Hinterkopf behalten. 72 71 Der Begriff ist jedoch vorsichtig zu verwenden, da “Legacy” in der Informatik einen negativen Aspekt im Sinne von “Altlast” beinhaltet. Da ihr natürlich bestehende Softwareprojekte nicht unbedingt beleidigen wollt, solltet ihr das im Hinterkopf behalten. 73 72 74 73 == Sollten wir das System Window für die SWA-Spiele benutzen? == … … 82 81 Schaut euch dazu doch einmal an, wie die Klasse SystemWindow verwendet werden. Vergleicht zum Beispiel einmal die Subklassen von SystemWindow (Browser - "Hierarchy" Button) und die direkten Referenzen auf die Klasse SystemWindow (STRG + SHIFT + N nach Selektion des Klassennamens). 83 82 Ihr werdet feststellen, dass es wesentlich mehr Referenzen (also benötigt für Instanzierung von Objekten) als Subklassen gibt. Ebenso sind alle Subklassen Spezialisierungen des SystemWindow aber keine eigenständige Programme. Nun versucht einmal zu verstehen, wie die Programme ihre SystemWindows erstellen und sich dann darin einbetten. 84 Probiert es bitte einmal selbst aus, falls ihr nicht weiterkommt, findet ihr ein kleines Beispiel zum Pong Spiel ganz am Ende dieser Mail [1].85 83 86 84 4. Schaut euch doch einmal PluggableSystemWindow und ToolBuilder an. 87 Hier wird mit Hilfe des "Builder Design Patterns" ein Mechanismus beschrieben, wie Fenster und Widgets an Hand von Spezifikationen erstellt werden können. Zur Entwicklung von Werkzeugen, ist dies der eigentliche Weg in Squeak. Wir werden dieses System später in der Vorlesung zu den Entwurfsmustern noch genauer behandeln. Dennoch ist es nicht verkehrt, es mal selbstständig zu verstehen :-) Lest dazu aber zumindest euch vorher kurz in das Muster ein.85 Hier wird mit Hilfe des "Builder Design Patterns" ein Mechanismus beschrieben, wie Fenster und Widgets an Hand von Spezifikationen erstellt werden können. Zur Entwicklung von Werkzeugen, ist dies der eigentliche Weg in Squeak. 88 86