Trong trò chơi của tôi, có những mảnh đất có các tòa nhà (nhà ở, trung tâm tài nguyên). Các tòa nhà như nhà ở có người thuê, phòng, tiện ích bổ sung, et cetera và có một số giá trị phải được mô phỏng dựa trên tất cả các biến này.
Bây giờ, tôi muốn sử dụng AndEngine cho công cụ giao diện người dùng và tạo một luồng khác để thực hiện các tính toán mô phỏng (có lẽ sau này cũng bao gồm AI trong luồng này). Điều này là để toàn bộ một luồng không thực hiện được tất cả các công việc và gây ra các vấn đề như chặn. Điều này giới thiệu vấn đề đồng thời và phụ thuộc .
Các vấn đề tiền tệ là chính thread UI của tôi và thread tính toán sẽ cả hai cần phải truy cập vào tất cả các đối tượng mô phỏng. Vì vậy, tôi phải làm cho chúng an toàn theo luồng, nhưng tôi không biết cách lưu trữ và cấu trúc các đối tượng mô phỏng để cho phép điều đó.
Các vấn đề phụ thuộc là để các giá trị tính toán, tính toán của tôi phụ thuộc vào giá trị các đối tượng khác.
Điều gì sẽ là cách tốt nhất để liên kết đối tượng người thuê của tôi trong tòa nhà với các tính toán của tôi? Mã cứng nó vào lớp người thuê nhà? Một cách tốt để làm các thuật toán "lưu trữ" để chúng dễ dàng được điều chỉnh là gì?
Một cách lười biếng đơn giản sẽ là bung mọi thứ vào một lớp chứa tất cả các đối tượng, chẳng hạn như các mảnh đất (người lần lượt nắm giữ các tòa nhà, et cetera). Lớp này cũng sẽ giữ trạng thái trò chơi như công nghệ có sẵn cho người dùng, nhóm đối tượng cho những thứ như sprite. Nhưng đây là một cách lười biếng và nguy hiểm, đúng không?
Chỉnh sửa: Tôi đã xem xét Dependency Injection, nhưng nó đối phó như thế nào với một lớp chứa các đối tượng khác? tức là, mảnh đất của tôi, với một tòa nhà, có một người thuê và một loạt các giá trị khác. DI trông giống như một kẻ đau khổ với AndEngine.