moim problemem jest to, że staramy się korzystać ze środowiska MVC (PHP). Po wielu dyskusjach uważam, że MVC jest bardzo dobre, ale brakuje mi możliwości napisania logiki wielokrotnego użytku - aplikacji. Nie jestem więc pewien, czy mamy odpowiednie podejście do wdrażania naszego oprogramowania w środowisku MVC.Jak pisać logikę biznesową wielokrotnego użytku w modelach MVC?
Najpierw opiszę podejście inne niż MVC, oo, którego obecnie używamy.
Na przykład - pracujemy nad niektórymi grami przeglądarkowymi (tak, to jest nasz zawód). Wyobraź sobie, że mamy obiekt gracza. Bardzo często korzystamy z tego obiektu gracza. Mamy kilka różnych stron, na których możesz kupować myśli, więc musisz wykonać transakcje "pieniężne" na "koncie bankowym" graczy lub wyobrazić sobie, że możesz walczyć z innymi graczami. Mamy kilka scenariuszy walki, a te skrypty zabierają 2 lub więcej obiektów gracza (zależy to od rodzaju bitwy tj. Bitwy klanów, bitwy pomiędzy graczami ...).
Mamy więc kilka stron (i kontrolerów) o różnej logice bitwy. Ale każdy z tych kontrolerów używa obiektu gracza, aby obliczyć wszystkie atrybuty i przedmioty, które gracz posiada oraz jakie obrażenia i obrażenia wykona gracz.
więc, w jaki sposób możemy ponownie użyć logiki w obiekcie gracza w przypadku modelu MVC? źle byłoby powielić całą niezbędną logikę w różnych kontrolerach walki i modelach.
Myślę, że "transakcja za złoto" - logika byłaby dobrym przykładem, aby dać ci więcej szczegółów. potrzebujesz funkcji transakcyjnej w przypadku walki, jeśli wygrasz z innym graczem i zrabujesz część jego złota, potrzebujesz funkcji transakcyjnej w przypadku zakupu niektórych rzeczy i potrzebujesz funkcji transakcyjnej w przypadku wydawania złota do gildii graczy ...
Powiedziałbym, że byłoby złym podejściem do zdefiniowania wszystkich tych funkcji w jednym modelu gracza! Mogę powiedzieć, że ten model gracza byłby bardzo duży (w rzeczywistości mamy problem, że nasza klasa graczy jest naprawdę ogromna - jego klasa godna)
myślisz, że istnieje rozwiązanie w stylu MVC dla tego problemu?