Skenario berikut terjadi pada saya beberapa kali.
Saya memprogram algoritma yang memecahkan masalah tertentu. Ini berfungsi dengan baik dan menemukan solusi yang benar. Sekarang, saya ingin memiliki opsi untuk memberi tahu algoritma "tulis penjelasan lengkap tentang bagaimana Anda mendapatkan solusi". Tujuan saya adalah untuk dapat menggunakan algoritma dalam demonstrasi online, kelas tutorial, dll. Saya masih ingin memiliki opsi untuk menjalankan algoritma secara real time, tanpa penjelasan. Apa pola desain yang baik untuk digunakan?
CONTOH: Misalkan saya menerapkan metode ini untuk menemukan pembagi umum terbesar . Metode yang diterapkan saat ini mengembalikan jawaban yang benar, tetapi tanpa penjelasan. Saya ingin memiliki opsi untuk metode untuk menjelaskan tindakannya, seperti:
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.
Output harus dikembalikan sehingga dapat dengan mudah ditampilkan baik di konsol maupun di aplikasi berbasis web.
Apa pola yang baik untuk memberikan penjelasan saat dibutuhkan, sementara tidak mengganggu kinerja algoritma waktu nyata ketika penjelasan tidak diperlukan?