我正在制作一个位图编辑器,其中文档由几个层组成,每个层代表一个位图。与文档中当前存在的所有其他层相比,每个层都必须具有唯一的ID。我还需要考虑到,我需要保存和加载文档以及图层ID。
我使用命令模式来存储在文档上执行的操作,并且使用唯一ID来跟踪应该在哪个层上执行操作。
目前,我只保留一个名为X的计数器,当创建一个新层时,其ID设置为X,然后X递增。加载时,我需要确保X设置为适当的数字,以便为新层提供唯一的ID,即我可以保存X的值并恢复该值,或者根据加载的最大层ID设置X。
假设X是一个32位数字,用户需要在同一文件上创建4294967296层,然后ID才能开始重用,这将导致奇怪的行为。我应该实现一个更好的唯一ID系统吗?或者这通常足够好吗?
我使用Java,所以我可以使用UUID库,该库根据标准算法创建128位唯一ID。不过,这似乎有些过头了。
对于这类问题,有没有一些通用的方法?