这样写抽象工厂对不对呀
小弟想完成下面这个面试题,想用工厂模式来完成,但是不知道写的对不对。
请大家帮忙给看看这样写行不呀。
如果要设计一个图形系统,请你设计基本的图形元件(Point,Line,Rectangle,Triangle)的简单实现
#####################################
抽象工厂类
public abstract class ShapFactory { private static ShapFactory sf = null; private static Object mutex = new Object(); public static ShapFactory getInstance(){ if(sf==null){ synchronized (mutex) { if(sf==null){ try { return new ShapFactoryImp(); } catch (Exception e) { e.printStackTrace(); return null; } } } } return sf; } public abstract Rectangle createrectangle(); public abstract Square createSquare();}
abstract class Shap { int lenght; int weight; int hight; abstract void draw();}
public class Rectangle extends Shap { @Override void draw() { System.out.println("I'm Rectangle"); }}
public class Square extends Shap{ void draw() { System.out.println("I'm Square"); }}
if(sf==null){
try {
return new ShapFactoryImp();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
}
return sf;
}
/* add by **** for sigton schema on 2008-10-04 */
private ShapFactory(){}
public abstract Rectangle createrectangle();
public abstract Square createSquare();
}