Karena Anda bukan programmer profesional, saya akan merekomendasikan untuk tetap berpegang pada kesederhanaan. Ini akan menjadi BANYAK lebih mudah bagi programmer untuk mengambil kode prosedural Anda, termodulasi dan membuatnya OO nanti, daripada bagi mereka untuk memperbaiki program OO yang ditulis dengan buruk. Jika Anda tidak berpengalaman, dimungkinkan untuk membuat program OO yang dapat berubah menjadi kekacauan yang tidak suci yang tidak akan membantu Anda atau siapa pun yang datang setelah Anda.
Saya pikir insting pertama Anda, kode "benda-hal ini" dalam contoh pertama adalah jalur yang benar. Jelas dan jelas apa yang ingin Anda lakukan. Jangan terlalu khawatir tentang efisiensi kode, kejelasan jauh lebih penting.
Jika segmen kode terlalu panjang, pecah menjadi potongan-potongan berukuran gigitan, masing-masing memiliki fungsinya sendiri. Jika terlalu pendek, pertimbangkan untuk menggunakan lebih sedikit modul dan membuat lebih banyak sambungan.
---- Catatan tambahan: Perangkap Desain OO
Bekerja dengan sukses dengan pemrograman OO bisa rumit. Bahkan ada beberapa orang yang menganggap seluruh model cacat. Ada buku yang sangat bagus yang saya gunakan ketika pertama kali belajar pemrograman OO bernama Thinking in Java (sekarang dalam edisi ke-4). Penulis yang sama memiliki buku yang sesuai untuk C ++. Sebenarnya ada pertanyaan lain pada Programmer yang berurusan dengan perangkap umum dalam pemrograman berorientasi objek .
Beberapa perangkap sangat canggih, tetapi ada banyak cara untuk menciptakan masalah dengan cara yang sangat mendasar. Sebagai contoh, beberapa tahun yang lalu ada seorang magang di perusahaan saya yang menulis versi pertama dari beberapa perangkat lunak yang saya warisi dan dia membuat antarmuka untuk semua yang mungkinsuatu hari nanti memiliki beberapa implementasi. Tentu saja, dalam 98% kasus hanya ada satu implementasi tunggal, jadi kode itu dimuat dengan antarmuka yang tidak digunakan yang membuat debugging sangat menjengkelkan karena Anda tidak dapat mundur melalui panggilan antarmuka, sehingga Anda akhirnya harus melakukan pencarian teks untuk implementasi (meskipun sekarang saya menggunakan IntelliJ memiliki fitur "Tampilkan Semua Implementasi", tetapi pada hari saya tidak memilikinya). Aturannya di sini sama dengan pemrograman prosedural: selalu hardcode satu hal. Hanya ketika Anda memiliki dua hal atau lebih, buat abstraksi.
Jenis kesalahan desain yang serupa dapat ditemukan di Java Swing API. Mereka menggunakan model terbitkan-berlangganan untuk sistem menu Swing. Ini membuat membuat dan men-debug menu di Swing menjadi mimpi buruk yang lengkap. Ironinya adalah itu sama sekali tidak ada gunanya. Hampir tidak pernah ada situasi di mana beberapa fungsi perlu "berlangganan" ke klik menu. Juga, terbitkan-berlangganan adalah macet total di sana karena sistem menu biasanya selalu digunakan. Ini tidak seperti fungsi berlangganan dan kemudian berhenti berlangganan secara acak. Fakta bahwa pengembang "profesional" di Sun membuat kesalahan seperti ini hanya menunjukkan betapa mudahnya bahkan bagi para profesional untuk membuat kesalahan besar dalam desain OO.
Saya adalah pengembang yang sangat ahli dengan pengalaman puluhan tahun dalam pemrograman OO, tetapi bahkan saya akan menjadi orang pertama yang mengakui ada banyak yang tidak saya ketahui dan bahkan sekarang saya sangat berhati-hati dalam menggunakan banyak OO. Saya biasa mendengarkan ceramah panjang dari seorang rekan kerja yang adalah seorang fanatik OO tentang bagaimana melakukan desain tertentu. Dia benar-benar tahu apa yang dia lakukan, tetapi sejujurnya saya kesulitan memahami program-programnya karena mereka memiliki model desain yang begitu canggih.