Това е продължение на този въпрос. Контекстът е същият, толкова кратък, че може да е полезен. Размишлявах върху това от дни и не стигнах доникъде, така че се отказвам и идвам тук.
Чудя се какви дизайнерски модели влизат в действие при създаването на система като тази, която описах там. Да кажем, че имам боен алгоритъм, който може да има произволен брой бойци от всяка страна. Първо разбираме кой кого напада и след това се екзекутира.
Сложната част е, че има много допълнителни поведения, които могат да бъдат добавени и те могат да бъдат донякъде произволни. Мислете за тях като за „пасивни умения“. Може да има и поведение като получаване на печалби от статистика, когато уцелите целта си, но само в някои видове битки.
Предишният ми въпрос показва как Decorator се провали. Един отговор предложи модела Strategy, но нямам желание да напиша дузина различни видове стратегии и след това няколко конкретни класа за всеки от тях. Дори тогава пак ще трябва да наруша принципа Open Closed, ако имах нужда от чисто ново поведение, което е напълно различно от всичко, което вече имам. Ще има и случаи, в които трябва да комбинирам няколко стратегии наведнъж, което може да доведе до украсени стратегии или комбинирани стратегии. Пример би бил, че когато понесете щети, може да 1. имате способност, която намалява щетите наполовина, 2. да имате екипиран предмет, който допълнително намалява щетите, 3. да върнете малко щети на вашия нападател и 4. да спечелите някои точки за статистика .
И така, какво би направил опитен архитект тук? В много игри са внедрени тези системи, така че съм любопитен какъв модел или комбинация от шаблони работят добре тук.
Не искам да публикувам огромна стена с код, така че ако има някаква конкретна част от моята система, която бихте искали да видите, просто попитайте в коментар.