Dalam permainan saya, ada bidang tanah dengan bangunan (rumah, pusat sumber daya). Bangunan seperti rumah memiliki penyewa, kamar, add-on, dan lain-lain, dan ada beberapa nilai yang harus disimulasikan berdasarkan semua variabel ini.
Sekarang, saya ingin menggunakan AndEngine untuk hal-hal ujung depan, dan membuat utas lain untuk melakukan perhitungan simulasi (mungkin juga nanti termasuk AI dalam utas ini). Ini agar satu utas utuh tidak melakukan semua pekerjaan dan menyebabkan masalah seperti pemblokiran. Ini memperkenalkan masalah konkurensi dan ketergantungan .
Masalah mata uang adalah utas utama UI saya dan utas perhitungan keduanya perlu mengakses semua objek simulasi. Jadi saya harus membuatnya aman, tetapi saya tidak tahu bagaimana menyimpan dan menyusun objek simulasi untuk mengaktifkannya.
Masalah ketergantungan adalah bahwa untuk menghitung nilai, perhitungan saya bergantung pada nilai objek lain.
Apa cara terbaik untuk menghubungkan objek penyewa saya di gedung dengan perhitungan saya? Hard-code ke kelas penyewa? Apa cara yang baik untuk melakukan algoritma "toko" sehingga mudah diubah?
Cara malas yang sederhana adalah dengan memasukkan semuanya ke dalam kelas yang menampung semua objek, seperti bidang tanah (yang pada gilirannya memegang bangunan, dan lain-lain). Kelas ini juga akan menyimpan status permainan seperti teknologi yang tersedia untuk pengguna, kumpulan objek untuk hal-hal seperti sprite. Tapi ini cara yang malas dan berbahaya, benar?
Sunting: Saya sedang melihat Dependency Injection, tetapi seberapa baik itu mengatasi seperti kelas yang memegang objek lain? yaitu, tanah saya, dengan bangunan, yang memiliki penyewa dan sejumlah nilai lainnya. DI terlihat seperti rasa sakit di gelandangan dengan AndEngine juga.