Saya baru-baru ini ingat membaca sebuah buku tentang pola desain untuk java dan karena kenyataan bahwa saya masih tidak mengerti bagaimana ini dilakukan dari memori di OOP, saya memutuskan untuk menulis implementasi saya di C.
Saya memutuskan untuk melihat lagi di buku java ini tentang bagaimana pola ini diterapkan. Saya melihat seluruh bab, melihat kode, tetapi tidak ada yang tersisa di kepala saya. Kenapa begitu ) Apakah benar berpikir dalam gaya oop? Sebagai contoh, saya tahu sedikit java dan c ++, tapi seberapa mudah mungkin untuk membuat implementasi sehingga menyenangkan untuk digunakan dan tidak dilupakan? Juga untuk percobaan, saya melihat bagaimana ini dilakukan di c ++. Yah, jujur, sulit bagi saya untuk melihat kode seperti itu, saya harus membaca setiap baris dan berpikir.
Jadi apa yang telah saya lakukan yang mungkin berguna di masa depan dalam pemrograman? Memenuhi implementasi di
github . Saya ingin menjelaskan kemudahan penggunaan apa yang saya tulis. Dalam implementasi ini, Anda tidak perlu membuat struktur yang akan menyimpan data. Struktur yang mendasarinya sendiri ada di belakang layar. Misalnya, saya ingin berlangganan dalam satu file ke penerbit TRADE. Penerbit ini, misalnya, akan memberi saya diskon produk. Saya menganggap pengamat sebagai fungsi biasa dan menyatakannya sesuai aturan.
void sub_trade ( void *event, void *data ) { }
Sekarang saya ingin membuat penerbit dan berlangganan acara. Dalam hal ini, Anda tidak perlu menelepon sesuatu yang ekstra. Hanya perlu menunjukkan penerbit mana yang harus mentransfer pelanggan.
enum { TRADE }; init_publisher ( TRADE, sub_trade, NULL );
Dan itu dia. kami berlangganan ke penerbit. Sekarang di file lain, misalnya, saya ingin membuat buletin di obrolan online. Saya tidak tahu betapa mudahnya melakukan ini di OOP, dan bahkan lebih lagi di java, tetapi dengan bantuan implementasi saya, ini dilakukan dengan sederhana. Omong-omong, java mungkin harus menggunakan metode statis.
Saya mendeklarasikan fungsi pelanggan lain.
enum { TRADE }; void notify_chat_trade ( void *event, void *data ) { } ... init_publisher ( TRADE, notify_chat_trade, NULL );
Sekarang dalam file di mana data baru diterima dan diuraikan, data diskon datang. Saya hanya perlu memanggil fungsi seperti itu dan data akan ditransfer jika perlu.
send_event ( TRADE, 10 );
Dan agar nyaman dan sederhana tanpa kesulitan penggunaan, Anda bisa mendapatkan hasil yang diinginkan. Saya pikir saya melakukannya dengan baik.
Ngomong-ngomong, siapa yang bisa menjelaskan kepada saya, apakah itu pemrograman struktural atau prosedural?