Na, allgemein ist das schwierig.
Stell dir vor, du hast eine Liste von Dingen. Die haben alle einen Preis. Nun ist es aber so, dass manche einen Stückpreis haben, andere einen Meterpreis, wieder andere einen Zeitpreis. Wenn du jetzt eine UI baust, um die Werte einzugeben, dann findest du dich schnell mit so etwas ab:
Alles anzeigen
Solcher Code taucht dann immer wieder auf. Wenn du jetzt einen Flächenpreis einführen möchtest, musst du alle Switch suchen und erweitern. Quer verteilt über den ganzen Code.
Die Alternative ist eine Klasse zu haben, nennen wir sie Item.Dann hast du Subklassen von Item, die einfach eine Methode unitString haben. Die überschreibst du.
Schon hast du die Spezialisierungen an einer Stelle gesammelt.
Stell dir vor, du hast eine Liste von Dingen. Die haben alle einen Preis. Nun ist es aber so, dass manche einen Stückpreis haben, andere einen Meterpreis, wieder andere einen Zeitpreis. Wenn du jetzt eine UI baust, um die Werte einzugeben, dann findest du dich schnell mit so etwas ab:
Quellcode
Solcher Code taucht dann immer wieder auf. Wenn du jetzt einen Flächenpreis einführen möchtest, musst du alle Switch suchen und erweitern. Quer verteilt über den ganzen Code.
Die Alternative ist eine Klasse zu haben, nennen wir sie Item.Dann hast du Subklassen von Item, die einfach eine Methode unitString haben. Die überschreibst du.
Schon hast du die Spezialisierungen an einer Stelle gesammelt.
Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?