Ребята, я новичок в Scala и пытаюсь что-то выяснить.Я немного возился с чертами характера, и мне очень нравится их способность «смешивать» функциональность и интерфейс.Я также возился с параллелизмом и актерами, и мне очень нравится возможность легко моделировать сложные сложные параллельные системы.
Проблема, с которой я столкнулся, заключается в том, что я не могу найти шаблон для объединенияоба мира.Что я действительно ищу, так это использую черты, чтобы определить, на какие типы сообщений отвечает Актер, что позволяет использовать разные ответы в иерархиях наследования.
Итак, для использования примера симулятора поля битвы: у меня есть симуляторы, которыечерты.Все объекты на поле битвы - симуляторы, и симуляторы должны ответить на «Пинг», отправив «Понг» - вот и все.Мне нужна черта IFF
, которая позволит симулятору идентифицировать себя как друга или врага отправителя сообщения.Другая черта должна быть Mobile
, что означает, что симулятор может двигаться и должен отвечать на сообщения, сообщающие симулятору о его новом назначении.
Как вы можете видеть, у меня может быть: class Tank extends Actor with Simulant with IFF with Mobile
, но у меня может быть что-токак барьер, например class Barrier extends Actor with Simulant
.
То, что я еще не смог сделать, - это создать правильную комбинацию act()
методов, циклов, реакций и т. д., чтобы сделать этот сценарий возможным.Короче говоря, возможно ли «смешивать в реакторах сообщений» или Scala ограничивает меня выбором актеров с одним наследованием или миксинами без актеров?
Спасибо!