Saya mencoba mendesain arsitektur sistem yang akan saya implementasikan dalam C ++, dan saya bertanya-tanya apakah orang bisa memikirkan pendekatan yang baik, atau mengkritik pendekatan yang telah saya rancang sejauh ini.
Pertama-tama, masalah umum adalah pipa pemrosesan gambar. Ini berisi beberapa tahap, dan tujuannya adalah untuk merancang solusi yang sangat modular, sehingga setiap tahap dapat dengan mudah diganti dan diganti dengan sepotong kode khusus (sehingga pengguna dapat memiliki peningkatan kecepatan jika dia tahu bahwa tahap tertentu dibatasi dengan cara tertentu dalam masalahnya).
Pemikiran saat ini adalah sesuatu seperti ini:
struct output; /*Contains the output values from the pipeline.*/
class input_routines{
public:
virtual foo stage1(...){...}
virtual bar stage2(...){...}
virtual qux stage3(...){...}
...
}
output pipeline(input_routines stages);
Ini akan memungkinkan orang untuk subkelas input_routines dan menimpa tahap apa pun yang mereka inginkan. Yang mengatakan, saya telah bekerja dalam sistem seperti ini sebelumnya, dan saya menemukan subclass dan hal-hal standar cenderung menjadi berantakan, dan bisa sulit untuk digunakan, jadi saya tidak pusing tentang menulis satu sendiri. Saya juga memikirkan pendekatan yang lebih STLish, di mana tahapan yang berbeda (ada 6 atau 7) akan menjadi parameter template default.
Adakah yang bisa menawarkan kritik terhadap pola di atas, pemikiran tentang pendekatan templat, atau arsitektur lain yang muncul di pikiran?