2013-12-09 4 views
2

Я пишу многопользовательскую браузерную игру в режиме реального времени в JavaScript. Поэтому я запускаю JS на сервере (Node.js) и в браузере. Из-за этого я хотел бы поделиться кодом между этими двумя контекстами.Обмен кодами между браузером и сервером (наследование)

Я решил разделить код на три части: ядро, клиент и сервер. Как вы, возможно, подозревали, что я использую Core для кода, который нам нужен с обеих сторон, Клиент и Сервер.

До сих пор я только что расширил соответствующий класс ядра, например. Клиент/проигрыватель расширяет Core/Player, который работает отлично.

UML Теперь я вижу, что, например, клиент/Игрок должен расширить базовый/плеер, чтобы получить имя атрибута и в то же время необходимо расширить Client/GameObject получить метод визуализации() и физику атрибут.

Если бы это было написано на C++, я мог бы попытаться использовать множественное наследование со всеми его недостатками. Но поскольку он написан на JavaScript, я не уверен, как это решить. Есть идеи?

ответ

0

То, что я, наконец, сделал, было взломом с видом препроцессора. Перед запуском я заменяю require («Core/GameObject») в Core/Player с требованием (context + «/ GameObject»). Таким образом я создаю вид «z», который позволяет мне наследовать от обоих.

Смежные вопросы