📄 shapefactory.java.1_11.txt
字号:
import java.util.HashMap;
import java.util.Map;
public class ShapeFactory {
/** 定义形状类型常量 */
public static final int SHAPE_TYPE_CIRCLE=1;
public static final int SHAPE_TYPE_RECTANGLE=2;
public static final int SHAPE_TYPE_LINE=3;
private static Map<Integer,String> shapes=new HashMap<Integer,String>();
static{ //静态代码块,当Java虚拟机加载ShapeFactory类的代码时,就会执行这段代码
// 建立形状类型和形状类名的对应关系
shapes.put(new Integer(SHAPE_TYPE_CIRCLE),"Circle");
shapes.put(new Integer(SHAPE_TYPE_RECTANGLE),"Rectangle");
shapes.put(new Integer(SHAPE_TYPE_LINE),"Line");
}
/** 构造具体的Shape对象,这是一个静态方法 */
public static Shape getShape(int type){
try{
//获得与形状类型匹配的形状类名
String className=shapes.get(new Integer(type));
//运用Java反射机制构造形状对象
return (Shape)Class.forName(className).newInstance();
}catch(Exception e){return null;}
}
}
/****************************************************
* 作者:孙卫琴 *
* 来源:<<Java面向对象编程>> *
* 技术支持网址:www.javathinker.org *
***************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -