- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的项目中,它是一种 tcp 服务器,我需要跟踪许多要在全局范围内使用的对象。我对哈希表上瘾了,目前我在我的项目中使用大约 10 个哈希表来存储不同类型的对象。
我的问题是,这样可以吗?我知道这是一个非常庞大的数据结构,但它使我的工作变得非常容易,而不是去寻找其他选择。例如,我有许多文本框组需要跟踪。所以我把它们都放在一个哈希表中,然后按我喜欢的方式使用它们。
在处理大型多线程应用程序时,这种方法是否是一种可接受且正常的编程方式。
最佳答案
从您的示例中看不清楚,但听起来好像您正在使用全局 HashMap 从程序中的任何位置访问您需要的对象(例如界面中的文本框)。
a) 这样的全局访问不是好的做法,对于接口(interface)对象更是如此。这些应该只能从前端模块访问,您的 TCP 服务器后端不会关心这些。
b) 在“功能组”中安排对象的正确方法是使用适当的类,而不是 5-10 个 HashMap 。为什么,在实践中?考虑这两种方法(在类似 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 访问一个不再存在的文本框,散布在您的代码中。
这是一种比散列图或全局对象更通用的做法 -- 它是关于使用具有明确定义的接口(interface)的对象,并且可以在不影响程序的其余部分的情况下在内部更改。
关于c# - 在 c sharp 中广泛使用哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5482898/
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我是一名优秀的程序员,十分优秀!