Masalah
Saya baru-baru ini membaca banyak tentang Singletons yang buruk dan bagaimana injeksi ketergantungan (yang saya pahami sebagai "menggunakan antarmuka") lebih baik. Ketika saya menerapkan bagian ini dengan callbacks / interfaces / DI dan mengikuti prinsip pemisahan antarmuka, saya berakhir dengan cukup berantakan.
Ketergantungan dari induk UI di mana pada dasarnya anak-anak dari semua anak-anaknya digabungkan, sehingga semakin tinggi hirarki elemen UI, semakin konstruksinya semakin besar.
Semua jalan di atas hirarki UI adalah kelas Aplikasi, memegang info tentang pilihan saat ini dan referensi ke model 3d yang perlu mencerminkan perubahan. Kelas aplikasi mengimplementasikan 8 antarmuka, dan ini hanya sekitar seperlima dari produk (/ antarmuka) yang akan datang!
Saat ini saya bekerja dengan singleton yang memegang seleksi saat ini dan elemen UI memiliki fungsi untuk memperbarui diri. Fungsi ini menetes ke bawah pohon UI dan elemen UI kemudian mengakses singleton pilihan saat ini sesuai kebutuhan. Bagi saya, kode ini tampak lebih bersih.
Pertanyaan
Apakah tunggal mungkin yang sesuai untuk proyek ini?
Jika tidak, apakah ada cacat mendasar dalam pemikiran dan / atau implementasi DI saya yang membuatnya sangat rumit?
Info tambahan tentang proyek
Jenis: Keranjang belanja untuk apartemen, dengan lonceng dan peluit
Ukuran: 2 man-bulan untuk kode dan
Pemeliharaan UI : Tidak ada pembaruan berjalan, tapi mungkin "versi 2.0" nanti
Lingkungan: Menggunakan C # di Unity, yang menggunakan Entity Sistem komponen
Dalam hampir semua kasus, interaksi pengguna memicu beberapa tindakan. Misalnya, ketika pengguna memilih item
- bagian UI yang menunjukkan item itu dan uraiannya perlu diperbarui. Untuk ini, ia juga perlu mendapatkan beberapa info dari model 3d untuk menghitung harganya.
- lanjut ke UI, harga total keseluruhan perlu diperbarui
- fungsi yang sesuai di kelas pada model 3d perlu dipanggil untuk menampilkan perubahan di sana