大概是这个意思,比如说,前台传入参数,页面就可以显示三角形,方形,圆形等等图形,我想设计一个单例的工厂类实现,传入不同的类型生成不同的图形,
可是形成三角形,方形,圆形的参数不一样,比如说三角形需要底,高,圆形需要半径等等,这样接口产生类的方法该怎么写呢?或者有其他好的方式么?(这些图形的参数别人已经定好了不如三角形的参数类A.java 包含了三角形的一切参数,圆形的参数类B.java 包含了圆形的一切参数)请教下大家.
可是形成三角形,方形,圆形的参数不一样,比如说三角形需要底,高,圆形需要半径等等,这样接口产生类的方法该怎么写呢?或者有其他好的方式么?(这些图形的参数别人已经定好了不如三角形的参数类A.java 包含了三角形的一切参数,圆形的参数类B.java 包含了圆形的一切参数)请教下大家.
{
public void draw();
}
public class Rect implements Drawable
{
public void draw(){ /**/}
}
可是在public void draw()的方法里不需要传参数么?
1.6节:多形对象的互换使用
嘿嘿!
//三角形相应参数
} public class ParamCircle extends Param{
//圆形相应参数
}public interface Shape{
public void setParam(Param param);
public void draw();
}public class Triangle implements Shape{
private paramTriangle param ;public void setParam(Param param){
this.param = param;
}public void draw(){
//根据三角形参数构建图形
}
}public class Circle implements Shape{
private paramCircle param;public void setParam(Param param){
this.param = param;
}public void draw(){
//根据圆形参数绘制
}
}//工厂类
public class ShapeFactory{
public static Shape createShape(String shapeName,Param param) throws Exception{
Shape shape = (Shape)Class.forName(shapeName).newInstance();
return shape;
}//客户端
public class Demo{
public static void main(String[] args) throws Exception{
String shapeName = "Circle";
Shape shape = ShapeFactory.createShape(shapeName);
shape.draw();
}
}
java.lang.String categoryAxisLabel,
java.lang.String valueAxisLabel,
CategoryDataset dataset,
PlotOrientation orientation,
boolean legend,
boolean tooltips,
boolean urls)
和createPieChart(java.lang.String title,
PieDataset dataset,
boolean legend,
boolean tooltips,
boolean urls)
就是这样子,参数类型和个数都不一样,我要怎么运用工厂类呢?现在我的目的就是这个包它生成各个图形都有各个类不利于别人去调用,想用个工厂模式把它们放一起,我这样想法对么?
String shapeName = "Circle";
Param param = new ParamCircle();
这里构建圆形参数...
Shape shape = ShapeFactory.createShape(shapeName,param);
shape.draw();