1 享元模式
2 实现代码
interface Shape{
public void draw();
}
class Circle implements Shape{
private String color;
private int radius;
public Circle(String color){
this.color = color;
}
public void setRadius(int radius){
this.radius = radius;
}
@Override
public void draw() {
System.out.println(color + " " + radius);
}
}
class ShapeFactroy{
public static Map<String, Object> circleMap = new HashMap<>();
public static Shape getCircle(String color){
Circle circle = (Circle)circleMap.get("color");
if (circle == null){
circle = new Circle(color);
circleMap.put(color, circle);
}
return circle;
}
}
public class Test{
private static String[] colors = {"red", "yellow", "green"};
private static String getColors(){
return colors[(int)(Math.random()*colors.length)];
}
public static void main(String[] args){
ShapeFactroy shapeFactroy = new ShapeFactroy();
for (int i = 0; i < 10; i++){
Circle circle = (Circle) ShapeFactroy.getCircle(getColors());
circle.draw();
}
}
}