Frage

verschiedene Programmiersprachen haben unterschiedliche Funktionen oder fehlen bestimmte Funktionen. Entwurfsmuster sind ein Weg, um diese Mängel zu umgehen. Ich habe die Bücher und Listen über Design Patterns in statisch, objektorientierten Sprachen (Java, C ++), sondern auch die Videos über Design Patterns in Python.

gesehen

Ich bin interessiert einige gemeinsamen Entwurfsmuster in anderen Sprachen wie Forth, um zu sehen, Icon, Lisp usw. Eine kurze Beschreibung, wie sie aussehen und warum sie in einer Sprache wären erforderlich sind nett sein. Vielleicht ein kurzer Vergleich zu einer anderen Sprache, die dieses Problem ohne Designmuster löst.

War es hilfreich?

Lösung

Design-Muster werden manchmal als „Idiome“ genannt. In nicht-OO-Sprachen (C, Forth, COBOL, etc.) sie sind nur "die üblichen Wege, Dinge zu tun". Manchmal sind sie „Algorithmen“ genannt. Jede Sprache (in der Tat, jede Disziplin) hat Muster der Entwicklung von Lösungen.

Wenn Sie etwas zwei- oder dreimal gesehen haben, haben Sie ein Muster gesehen. Wenn Sie den Kontext beschreiben können, das Problem, die Lösung und Konsequenzen, haben Sie das Muster von etwas vage etwas Konkretes erhöht und spezifisch.

Nicht-OO-Sprachen sind die Muster nicht oft benannt und katalogisiert. Sie wissen nicht, warum dies der Fall wäre, so scheint es so zu sein.

Andere Tipps

Für Design-Muster in Lisp, könnten Sie lesen dieses , von Peter Norvig.

dieser Folie :

  

16 der 23 Entwurfsmuster sind entweder unsichtbar oder einfacher

Design Patterns sind nicht wirklich gemeint zu jeder Sprache gebunden werden. Sie sind allgemeine Lösungen für gemeinsame Probleme.

In Lisp, anstelle von Entwurfsmustern Sie verwenden:

  • Lambda und Verschluss (anonyme Funktionen und Capture-Umgebungen)
  • Funktionen höherer Ordnung (Funktionen den Umgang mit Funktionen)
  • Makros (Syntax extesnions)
  • verschiedene Auswertungsstrategien (lazy evaluation, Backtracking)
  • First-Class-Funktionen, Klassen, Namensräume, Module, etc.
  • dynamische Umgebung (z ersetzen Funktionen jederzeit)
  • etc.

Ich weiß nicht wirklich, was ein Design-Muster in diesem Zusammenhang bedeutet. Wenn ein Designmuster ein Rezept ist, die man folgen soll, bestimmte Arten von Problemen zu lösen, dann ist es ein Mangel an Funktion in der Programmiersprache oder die Umwelt. Computer können ziemlich gut sich wiederholende Aufgaben bewältigen, so Designmuster umgesetzt werden müssen und nur mit den tatsächlichen Parametern aufgerufen.

Die Delegierten und Ereignisse in C # und .Net machen es trivial die Beobachter Muster zu implementieren, da sie so häufig verwendet werden, zB GUI-Ereignisse zu behandeln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top