题目:考虑一个表示绘图的标准,并且可以根据不同的图形来进行绘制;
/**题目:考虑一个表示绘图的标准,并且可以根据不同的图形来进行绘制;*/
interface IGraphical {//定义绘图标准
public void paint();
}
class Point
{
private double x;//x坐标
private double y;//y坐标
public Point(double x,double y){
this.x = x;
this.y = y;
}
public double getX(){
return x;
}
public double getY(){
return y;
}
}
class Triangle implements IGraphical {//绘制三角形
private double[] a;//三角形第一个坐标
private double[] b;//三角形第二个坐标
private double[] c;//三角形第三个坐标
public Triangle(double[] a,double[] b,double[] c){
this.a = a;
this.b = b;
this.c = c;
}
public void paint(){
System.out.println("当前绘制三角形:");
System.out.println("三角形第一个坐标是:"+"["+this.a[0]+","+this.a[1]+"];");
System.out.println("三角形第二个坐标是:"+"["+this.b[0]+","+this.b[0]+"];");
System.out.println("三角形第三个坐标是:"+"["+this.c[0]+","+this.c[0]+"];");
}
}
class Circular implements IGraphical {//绘制圆形
private double radius; //圆形的半径
public Circular(double radius){
this.radius = radius;
}
public void paint(){
System.out.println("当前绘制圆形:");
System.out.println("当前绘制圆形的半径是:"+radius);
}
}
class Factory{ //工厂类
public static IGraphical getInstance(String className,double ... args){
if("triangle".equalsIgnoreCase(className)){
return new Triangle(new double[]{args[0],args[1]},new double[]{args[2],args[3]},new double[]{args[4],args[5]});
}else if("circular".equalsIgnoreCase(className)){
return new Circular(args[0]);
}else{
return null;
}
}
}
class PaintTestDemo
{
public static void main(String[] args)
{
IGraphical ig1 = Factory.getInstance("triangle",1.1,1.1,2,2,3,3);
ig1.paint();
IGraphical ig2 = Factory.getInstance("circular",2);
ig2.paint();
}
}