Das folgende Szenario ist mir mehrmals passiert.
Ich habe einen Algorithmus programmiert, der ein bestimmtes Problem löst. Es funktioniert gut und findet die richtigen Lösungen. Jetzt möchte ich die Option haben, dem Algorithmus zu sagen, "schreibe eine vollständige Erklärung, wie du zur Lösung gekommen bist". Mein Ziel ist es, den Algorithmus in Online-Demonstrationen, Tutorials usw. verwenden zu können. Ich möchte weiterhin die Option haben, den Algorithmus in Echtzeit ohne die Erklärungen auszuführen. Was ist ein gutes Designmuster?
BEISPIEL: Angenommen, ich implementiere diese Methode, um den größten gemeinsamen Teiler zu finden . Die aktuell implementierte Methode gibt die richtige Antwort zurück, jedoch ohne Erklärungen. Ich möchte eine Option für die Methode haben, um ihre Aktionen zu erklären, wie zum Beispiel:
Initially, a=6 and b=4. The number of 2-factors, d, is initialized to 0.
a and b are both even, so we divide them by 2 and increment d by 1.
Now, a=3 and b=2.
a is odd but b is even, so we divide b by 2.
Now, a=3 and b=1.
a and b are both odd, so we replace a by (a-b)/2 = 1.
Now, a=1 and b=1.
a=b, so the GCD is a*2^d = 2.
Die Ausgabe sollte so zurückgegeben werden, dass sie sowohl in der Konsole als auch in webbasierten Anwendungen problemlos angezeigt werden kann.
Was ist ein gutes Muster, um bei Bedarf Erklärungen bereitzustellen, ohne die Echtzeitleistung des Algorithmus zu beeinträchtigen, wenn Erklärungen nicht benötigt werden?