Создание статического HashMap и установка его в класс в Java - будет ли он действительно статичным? - PullRequest
3 голосов
/ 24 апреля 2011

Я пишу построчный интерпретатор для класса и использую для этого Java. Он должен быть динамически ограничен, что оказалось ментально сложнее реализовать, чем лексическое определение для меня. (Я пропустил это требование, когда начал.)

В моем решении у меня есть классы для моделирования функций; но поскольку привязка должна быть глобальной, я подумал, что мог бы создать класс, единственной задачей которого было бы содержать статический HashMap для всех моих привязок переменных, но установить HashMap каждого класса функции, чтобы он указывал на него.

В чем я не уверен, так это в том, будет ли это работать так, как задумано; если у меня есть несколько функций, могу ли я гарантировать, что все они имеют доступ к данным в моем связывающем HashMap? Если ответ на этот вопрос - да, тогда у меня есть решение. В противном случае вернемся к чертежной доске ...

1 Ответ

2 голосов
/ 24 апреля 2011

Я бы настоятельно рекомендовал не использовать статические структуры данных в этом случае.Представьте, что вы хотите поддерживать два параллельных сеанса за один прогон вашей программы.Они будут мешать друг другу, не так ли?Те же проблемы могут возникнуть, если вам потребуется предоставить тесты для вашей базы кода.

Я предлагаю содержать ссылку на экземпляр Hashmap.Как предлагает Робин, вы можете поместить его в какой-то общий суперкласс, чтобы избежать дублирования.Но все же каждый объект, представляющий функцию, должен был бы указывать ссылку на Hashmap как конфигурацию.

Все это заставляет меня думать, что вас может вдохновить идея Внедрение зависимости .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...