擅长:python、mysql、java
<p>您所要求的是能够找到内存中的所有实例化对象,然后仅为特定类/子类/父类/任何对象对它们进行筛选,请看一下关于如何从内存中获取所有当前对象和方法的<a href="https://stackoverflow.com/questions/4458701/how-to-get-the-list-of-all-initialized-objects-and-function-definitions-alive-in">stack-overflow question</a></p>
<p>也就是说。。。任何时候,当你不得不问自己如何在内存中全局查找某个事物的所有实例时,你都应该停下来问自己(看起来你做到了,很荣幸),有没有更好/更简单的方法</p>
<p>大多数情况下,您希望使数据可视化工具独立,这样它只使用数据流(在构建过程中指定),请参见以下内容:</p>
<pre><code>ds = myDataStream()
vis = myDataVisualizer(ds)
vis.show() # or whatever
</code></pre>
<p>或</p>
<pre><code>ds = myDataStream()
vis = myDataVisualizer()
vis.show(ds)
</code></pre>
<p>如果您希望您的数据可视化工具在运行时是数据不可知的(比如数据来自多个源),那么您有两个选择。添加用于删除和添加数据源的方法,或者,您可以使用类似于使用<a href="https://docs.python.org/3/library/multiprocessing.html" rel="nofollow noreferrer">Queues and Processes</a>的生产者-消费者模式的方法将它们链接在一起(我就是这样做的)</p>
<p>但是,如果您真的必须完全管理自己的内存(比如通过映射、堆或其他方式)。还有一些设计模式可以帮助您:</p>
<ul>
<li>工厂</li>
<li>抽象工厂</li>
<li>装饰师</li>
<li>或者其他人,看一下<a href="https://refactoring.guru/design-patterns" rel="nofollow noreferrer">refactoring.guru</a>上的目录</li>
</ul>