Jadi saya berpikir tentang seberapa monolitik kelas saya mendapatkan banyak waktu. Misalnya, dalam metode Characterkelas 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 Characterkelas 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 Jumpdan berkomentar atau apa pun.
Jadi .. saya sedang berpikir ..
Bagaimana jika, sebaliknya, ada semacam AudioSystemkelas dan yang dilakukannya hanyalah berlangganan acara acak yang diminati di kelas lain. Sebagai contoh, Characterkelas mungkin memiliki Jumpedacara (statis juga, saya kira) yang dimunculkan dalam Characterkelas dalam metode ini. Kemudian, Characterkelas tidak akan tahu apa-apa tentang efek suara kecil yang dimainkan ketika karakter melompat. Itu AudioSystemhanya 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?