Jadi saya berpikir tentang seberapa monolitik kelas saya mendapatkan banyak waktu. Misalnya, dalam metode Character
kelas Jump
, seseorang mungkin memiliki referensi ke objek efek suara dan memainkannya. Dengan sendirinya itu baik-baik saja tetapi ketika fisika, animasi, tabrakan, dll diperhitungkan, metode Jump menjadi besar dan Character
kelas memiliki banyak ketergantungan pada banyak hal yang berbeda. Namun, ini mungkin baik-baik saja. Namun, bagaimana jika kita tidak lagi ingin suara dimainkan ketika karakter melompat? Sekarang, kita harus menemukan baris kode tertentu dalam kekacauan kode yang campur aduk Jump
dan berkomentar atau apa pun.
Jadi .. saya sedang berpikir ..
Bagaimana jika, sebaliknya, ada semacam AudioSystem
kelas dan yang dilakukannya hanyalah berlangganan acara acak yang diminati di kelas lain. Sebagai contoh, Character
kelas mungkin memiliki Jumped
acara (statis juga, saya kira) yang dimunculkan dalam Character
kelas dalam metode ini. Kemudian, Character
kelas tidak akan tahu apa-apa tentang efek suara kecil yang dimainkan ketika karakter melompat. Itu AudioSystem
hanya akan menjadi kelas besar yang programmer dapat mundur untuk menghubungkan efek suara dengan peristiwa-peristiwa tertentu yang terjadi dalam permainan melalui penggunaan peristiwa statis. Kemudian, jika mendapat terlalu besar itu bisa dipisahkan ke subclass seperti EffectsAudioSystem
, BackgroundAudioSystem
, AmbientAudioSystem
, dan sebagainya.
Kemudian, dalam opsi untuk gim, seseorang dapat memiliki kotak centang untuk mengaktifkan atau menonaktifkan jenis suara ini dan semua yang perlu dilakukan hanyalah menonaktifkan satu sistem dengan bendera Boolean yang sederhana dan tunggal. Gagasan sistem ini juga dapat diperluas ke hal-hal seperti fisika, animasi, dll. Hingga titik di mana sebagian besar respons permainan yang dihasilkan dari tindakan pemain dihubungkan melalui sistem yang rumit dan terpisah ini.
Oke, jadi pertanyaan saya mungkin agak kabur, tetapi bagaimana hal ini terdengar? Saya belum pernah mendengar banyak pembicaraan tentang sistem semacam ini. Ini semua ada di kepala saya sekarang tanpa pengkodean dilakukan sejauh ini jadi mungkin itu salah satu dari mereka "baik dalam teori tetapi tidak dalam praktik" jenis transaksi. Apakah sistem semacam ini akan bekerja dengan gim yang lebih besar atau akankah akhirnya rusak dan menjadi lebih berantakan seperti spaghetti daripada sistem aslinya?