Ну, задайте себе несколько вопросов.
Во-первых, является ли шрифт логически изменчивым, как список покупок, или неизменным, как число? Если вы моделируете список покупок в программе, имеет смысл сделать его изменчивым, потому что вы обычно думаете о том, чтобы иметь один список покупок, содержимое которого меняется по мере того, как вы исчерпываете или приобретаете определенные предметы. Но числа, которые вы обычно моделируете как неизменяемые - число 12 - это число 12 сейчас и навсегда.
Я думаю, что "Helvetica 12 point bold" - это фиксированная, неизменная вещь, как число, а не то, что я могу изменить.
Во-вторых, шрифт логически больше похож на значение, которое вы можете сделать копии, или это больше похоже на отдельную вещь, на которую вы можете сослаться? Я не думаю, что у меня есть «две копии» Helvetica; Я думаю о том, чтобы обратиться к Helvetica. Принимая во внимание, что числа имеют разные копии для разных целей - когда у меня в списке покупок 12 предметов и 12 ключей на связке ключей, я не считаю обе эти вещи «ссылкой на 12».
Поскольку я считаю шрифты неизменяемыми и упоминаемыми, а не изменяемыми и копируемыми по значению, я лично буду моделировать шрифты как неизменяемые ссылочные типы. Возможно, ваша интуиция о шрифтах отличается от моей.