Это не ясно из вашего примера, но звучит так, как будто вы используете глобальные хеш-карты для доступа к нужным объектам (таким как текстовое поле в интерфейсе) из любой точки вашей программы.
a) Подобный глобальный доступ не является хорошей практикой, и тем более с объектами интерфейса . К ним следует обращаться только из интерфейсного модуля, ваш сервер TCP не должен заботиться об этом.
b) Правильный способ размещения объектов в «функциональной группе» заключается в наличии надлежащего класса, а не 5-10 хеш-карт . Почему на практике? Рассмотрим эти два подхода (в псевдокоде, похожем на python):
# Interface is a hash-map of interface objects, like text-boxes. 'status' is the key
# in the map for one of those.
Interface['status'].setText("New status!")
# vs:
# Interface is a proper object with its own class, that handles the interface. It has
# all our text-boxes "inside" of it.
Interface.updateStatus("New status!")
Теперь, скажем, вы передумали и хотите представить статус рисунка, а не текстового поля. Со вторым подходом это просто: вы просто соответствующим образом настраиваете GUI и изменяете поведение метода updateStatus!
При первом подходе у вас теперь есть беспорядок обращений hahsmap к текстовому полю, которое больше не существует, распространяется по всему вашему коду.
Это гораздо более общая практика, чем просто хеш-карты или глобальные объекты - речь идет о работе с объектами, которые имеют четко определенные интерфейсы и которые могут изменяться внутри системы без влияния на остальную часть программы .