vấn đề của tôi là chúng tôi cố gắng sử dụng một khung công tác MVC (PHP). Sau khi thảo luận nhiều suy nghĩ rằng MVC rất tốt, nhưng tôi thiếu khả năng viết logic mô hình (ứng dụng) tái sử dụng được. Vì vậy, tôi không chắc liệu chúng ta có cách tiếp cận đúng để thực hiện phần mềm của chúng ta trong một khung MVC hay không.Làm thế nào để viết logic kinh doanh tái sử dụng trong các mô hình MVC?
Đầu tiên tôi sẽ mô tả cách tiếp cận không phải MVC, oo mà chúng tôi sử dụng tại thời điểm này.
Ví dụ - chúng tôi đang làm việc trên một số trò chơi trình duyệt (có đó là nghề của chúng tôi). Hãy tưởng tượng chúng ta có một đối tượng người chơi. Chúng tôi thường xuyên sử dụng đối tượng trình phát này. Chúng tôi có một số trang khác nhau nơi bạn có thể mua tư duy, vì vậy bạn cần phải thực hiện giao dịch "tiền" trên tài khoản ngân hàng của người chơi hoặc tưởng tượng bạn có thể chiến đấu chống lại người chơi khác. Chúng tôi có một số kịch bản chiến đấu, và các kịch bản này mất từ 2 đối tượng người chơi trở lên (nó phụ thuộc vào loại trận chiến tức là trận đấu clan, người chơi so với trận đấu người chơi ...).
Vì vậy, chúng tôi có một số trang (và bộ điều khiển) với logic chiến đấu khác nhau. Nhưng mỗi bộ điều khiển này sử dụng đối tượng người chơi để tính toán tất cả các thuộc tính và vật phẩm mà người chơi có và sát thương và phòng thủ mà người chơi sẽ làm.
vì vậy, làm cách nào chúng tôi có thể sử dụng lại logic trong đối tượng trình phát trong trường hợp Mô hình MVC? nó sẽ là xấu để sao chép tất cả các logic cần thiết trong các cuộc chiến-điều khiển và mô hình khác nhau.
Tôi nghĩ rằng "giao dịch vàng" -logic sẽ là một ví dụ tốt để cung cấp cho bạn một số thông tin chi tiết hơn. bạn cần chức năng giao dịch trong trường hợp chiến đấu, nếu bạn thắng một người chơi khác và cướp một số vàng của mình, bạn cần chức năng giao dịch trong trường hợp mua một số thứ và bạn cần chức năng giao dịch trong trường hợp chi tiêu vàng đến guild của người chơi ...
Vì vậy, tôi sẽ nói đó sẽ là một cách tiếp cận xấu để xác định tất cả các chức năng này trong một mô hình trình phát! Tôi có thể nói rằng các mô hình trình phát này sẽ rất lớn (thực ra chúng tôi có vấn đề là lớp cầu thủ của chúng tôi thực sự rất lớn - đó là lớp thần)
Bạn có nghĩ giải pháp kiểu MVC cho vấn đề này không?