Wie Arten von Funktionen anstatt spezifische Merkmale möglicherweise Schlüssel zu trennen ‚Design Patterns‘ von ‚Algorithmen‘ ...
Entwurfsmuster beschreiben generische Lösungen für gemeinsame Design-Probleme zu organisieren. "Jedes Muster beschreibt ein Problem, das in unserer Umgebung immer wieder auftritt, und beschreibt dann den Kern der Lösung für dieses Problem, sodass Sie diese Lösung millionenfach verwenden können, ohne dass Sie es gleich tun müssen Weg zweimal "(Christopher Alexander) Bei der Programmierung erfolgt dies durch die Beschreibung bestimmter Sätze von Beziehungen zwischen Software-Objekten (für konzeptionelle oder reale Welt Objekte stehen). Die Beschreibung spezifischer Implementierungen sollte vermieden werden, da dadurch das Designmuster weniger generisch wird.
Ein Algorithmus ist eine Reihe von Schritten, die definieren, wie eine Aufgabe ausgeführt wird. Die Ausführung jedes Schrittes in einem Algorithmus erfordert keine kreativen Fähigkeiten. Es erfordert nur die Fähigkeit, Richtungen zu folgen. (Warnung: nichtdeterministische Algorithmen, entsprechen nicht dieser Einschränkung und sind ein wichtiges Thema der Forschung)
So denke ich, eine Beschreibung der Beziehung könnte sein, Funktionen von Funktionen zu trennen. Die Sammlung von Merkmalen eines Objekts bestimmt jedoch seine Funktion, da jedes Untermerkmal Funktionen darin eingekapselt hat. Wenn Sie viele kleine Objekte zu einem größeren Objekt zusammenfügen (zB Instanzen verschiedener Klassen in einem Programm), werden einige von ihnen zusammenarbeiten, um neue Funktionen zu erstellen, die sie selbst nicht hatten (das Ganze ist größer als die Summe seiner Teile)). Sie können sagen, dass dies nur ein neuer Algorithmus ist, aber es ist auch ein neues Objekt. Merkmale und Funktionen sind zwei Seiten derselben Medaille, so dass es unmöglich ist, sie vollständig zu trennen. Aber wie man Arten der Eigenschaften eher als spezifische Eigenschaften organisiert, könnte Schlüssel sein, "Entwurfsmuster" von "Algorithmen" zu trennen, da, wenn Entwurfsmuster über das Organisieren der spezifischen Eigenschaften, dh Instanzen der spezifischen Klassen sind, dann der Algorithmus bereits dargestellt worden wäre und die Implementierung wäre jedes Mal genau die gleiche, dh es wäre nicht generisch, und Sie können diese Lösung nicht "millionenfach" verwenden, ohne es zweimal gleich zu machen.
Es scheint mir, dass Sie nicht wirklich nach einem Algorithmus suchen. Welche Eingaben liefern Sie und welche Ausgabe erwarten Sie nach der Ausführung des Algorithmus? –
Ist das ein Algorithmus oder ein Entwurfsmuster (oder ein Rezept für eine Katastrophe)? 1. Wenn eine Abfrage ausgeführt wird, drücken Sie die umgekehrte Abfrage "Rückgängig" auf einem Stapel. 2. Wenn die Rückgängig-Taste gedrückt wird, knacken Sie die Abfrage aus dem Stapel und führen Sie sie aus. Vielleicht ist das Problem nicht-Determinismus? –