Saya menulis paket MATLAB kecil yang akan memecahkan masalah numerik kelas tertentu. Ada 3 tahap algoritma dan pengguna memiliki 5 pilihan untuk setiap tahap. Saya telah menerapkan seluruh masalah menggunakan fungsi dan 3 kasus sakelar (satu untuk setiap tahap algoritma). Ini berfungsi dengan baik tetapi saya mempertimbangkan membuatnya melakukan lebih banyak hal (lebih dari 5 pilihan dan satu tahap lagi) dan juga membuat port Python (beberapa orang tertarik).
Saya bertanya-tanya apakah saya harus mengkonversi ke kerangka kerja OOP (yang saya tidak pandai sama sekali) atau apakah saya harus tetap dengan kerangka prosedural yang saya miliki (yang saya pandai). Saya telah memastikan dalam kode prosedural saya bahwa tidak ada fungsi yang melakukan dua hal dan ada sedikit tumpang tindih (2 kode-segmen hampir tidak pernah melakukan hal yang sama).
Harap migrasikan ini ke SO jika Anda merasa lebih cocok dengan domain mereka.
Pertanyaan ini mungkin cocok untuk Stack Overflow. Saya pikir ini juga cocok di sini karena ini adalah masalah umum dalam ilmu komputasi.
Dalam hal menyusun algoritma, contoh perpustakaan yang baik yang melakukan ini dengan baik adalah PETSc, jika Anda dapat membaca kode C. Gaya pemrograman berorientasi objek dapat membantu mengenkapsulasi data, tetapi sebagai langkah pertama yang sederhana, Anda mungkin hanya ingin membuat setiap pilihan untuk fungsi panggung dengan antarmuka umum. Kemudian, untuk algoritme Anda, berikan fungsi untuk setiap tahap sebagai input dan minta algoritma utama memanggil fungsi untuk setiap tahap.
sumber
1
+
1.plus(1)
plus(1,1)
1
plus
__plus__
__rplus__
Jadi jangan merasa bahwa Anda perlu memaksa pasak persegi ke dalam lubang bundar, jika algoritme Anda terlihat bagus dengan cara prosedural polos maka tetap seperti itu. Jika perlu dimasukkan dalam sistem OO Anda selalu dapat menempatkan antarmuka OO pada kode non-OO Anda. C ++ coders melakukan ini setiap hari (dan bahkan dibayar untuk itu).
sumber