불변 객체. 도메인 모델에서 잘 골라야함
public final class Font {
private final String fontFamily;
private final int fontSize;
public Font(String fontFamily, int fontSize) {
this.fontFamily = fontFamily;
this.fontSize = fontSize;
}
public String getFontFamily() {
return fontFamily;
}
public int getFontSize() {
return fontSize;
}
}
캐싱
public class FontFactory {
private Map<String, Font> cache = new HashMap<>();
public Font getFont(String font) {
if (cache.containsKey(font)) {
return cache.get(font);
} else {
String[] split = font.split(":");
Font newFont = new Font(split[0], Integer.parseInt(split[1]));
cache.put(font, newFont);
return newFont;
}
}
}