package com.study.handcode.设计模式.结构性模式;
import java.util.HashMap;
import java.util.Map;
public class 二十三种设计模式之享元模式 {
public static void main(String[] args) {
System.out.println(BoxFactory.getBox("L") == BoxFactory.getBox("L"));
}
static abstract class AbstractBox{
private String shape;
public AbstractBox(String shape) {
this.shape = shape;
}
public String getShape(){
return shape;
};
}
static class LBox extends AbstractBox {
public LBox() {
super("L");
}
}
static class BoxFactory{
static Map<String, AbstractBox> map = new HashMap<>();
static {
map.put("L", new LBox());
}
public static AbstractBox getBox(String key){
AbstractBox abstractBox = map.get(key);
if (abstractBox!=null){
return abstractBox;
}else {
throw new RuntimeException("没有该类型");
}
}
}
}