Color的特点是颜色是在构造时指定的。如果运行中频繁产生,确实会影响性能。自然的,我们就想,能不能进行缓冲呢?
使用哈希表缓冲不可行
因为在缓冲的时候,需要构造一个对象(字串或整数),才能搜索到。
使用数组缓冲不可行
颜色种类太多。
索引式缓冲
比如泰山OFFICE在使用过程中,使用的颜色数量是很少的。那么这些颜色可以通过指定用途的方式存起来。比如说,不同的皮肤(外套),背景色不同,可以通过获取背景色的函数得到。
自定义颜色的处理
除此之外,用户自定义颜色用于特定场合(比如文档中的字体)。这种机会很少,所以我们就不要缓存了,直接保存起来即可。如果用户两次自定义的颜色相同,我们也可以当作不同颜色,也可以在构造后检查一遍。