字体不可变让程序员和 GC 都感到苦恼,因为每次都需要创建一个新实例。
那么为什么 Font 是不可变的引用类型呢?
它简化了渲染系统的使用。
如果框架允许 Font 可变,则需要检测更改,并定期修改其渲染方式。由于 Font 创建了本机资源,因此保持其不可变可以防止系统担心必须在内部重复重新创建句柄。
另外,我不同意“程序员的苦恼”。通过使 Font 不可变,可以使用户创建 Font 对象时发生的情况更加明显。如果你想要一个新的 Font,你需要创建一个新的 Font 对象,该对象又创建新的原生字体资源。使 Font 不可变可以更清楚地了解正在发生的事情 - 您不太可能意外地造成性能问题。
如果 Font 是可变的,则在更改 Font 属性时重复创建句柄的情况就不那么明显了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)