【发布时间】:2020-04-02 19:13:18
【问题描述】:
所以我读到静态变量和方法破坏了open close principle。
假设您有一个类,该类有一个带有“大量数据”(10mb)的变量,该变量是最终的并在所有实例之间共享。游戏中敌人的精灵图,比如说僵尸。
如果我不使用SOLID,我会将变量设为私有静态,因此它只存储在内存中一次。有 100 个僵尸使用 10mb 的内存在存储在堆上的精灵图上,如果每个实例有 1 个,那么它的内存远少于 1gb。
问题 - 有没有一种可靠的方法来使用堆来存储精灵图的一份副本,这样它就不会占用太多内存?
【问题讨论】:
-
向一个工厂对象请求实例。
-
我太笨了!当然这是答案,然后有一个精灵地图加载器,所以工厂仍然有一个单一的目的,请你把它作为一个实际的答案,以便我可以将它设置为已解决!
标签: java oop shared-memory solid-principles