大概是这个意思,比如说,前台传入参数,页面就可以显示三角形,方形,圆形等等图形,我想设计一个单例的工厂类实现,传入不同的类型生成不同的图形,
可是形成三角形,方形,圆形的参数不一样,比如说三角形需要底,高,圆形需要半径等等,这样接口产生类的方法该怎么写呢?或者有其他好的方式么?(这些图形的参数别人已经定好了不如三角形的参数类A.java 包含了三角形的一切参数,圆形的参数类B.java 包含了圆形的一切参数)请教下大家.

解决方案 »

  1.   

    public interface Drawable
    {
        public void draw();
    }
    public class Rect implements Drawable
    {
        public void draw(){  /**/}
    }
      

  2.   


    可是在public void draw()的方法里不需要传参数么?
      

  3.   

    按楼主说的那样,既然每种图形都有自己不同的参数bean那就在工厂方法中判断bean的类型,然后执行对应的操作吧
      

  4.   

    think in java 第一章对象入门。
    1.6节:多形对象的互换使用
    嘿嘿!
      

  5.   

    下面的结构,lz可作参考:public class Param{}public class ParamTriangle extends Param{
    //三角形相应参数
    } 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();
    }
    }
      

  6.   

    还是不十分明白.我写个例子是图表的吧,比如我这有IChart接口,三个实现类PieChart,XYChart,BarChart,是自己定义的,但是其实每个类中有各自的实现方法,比如createBarChart(java.lang.String title,
                                            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)
    就是这样子,参数类型和个数都不一样,我要怎么运用工厂类呢?现在我的目的就是这个包它生成各个图形都有各个类不利于别人去调用,想用个工厂模式把它们放一起,我这样想法对么?
      

  7.   

    上面的客户端调用还需要构建相应的图形参数,呵呵,漏写了
    String shapeName = "Circle";
    Param param = new ParamCircle();
    这里构建圆形参数...
    Shape shape = ShapeFactory.createShape(shapeName,param);
    shape.draw();