题目
定义了一个 Shape
接口和两个实现类 Circle
和 Square
,然后创建了一个 ShapeFactory
工厂类,根据用户输入的形状类型返回相应的形状对象。在 main
方法中,我们使用工厂类实例化并调用了圆形和正方形对象的 draw
方法。
package com.jsu.shape;
//实现一个接口
public interface Shape {
void draw();
}
package com.jsu.shape;
//圆
public class Circle implements Shape{
@Override
public void draw() {
System.out.println("圆");
}
}
package com.jsu.shape;
//长方形
public class ChangFangXin implements Shape{
@Override
public void draw() {
System.out.println("长方形");
}
}
package com.jsu.shape;
//实现工厂
public class ShapeFactory {
public Shape getShape(String type){
if(type ==null){
return null;
} else if (type.equals("Circle")) {
return new Circle();
} else if (type.equals("ChangFangXin")) {
return new ChangFangXin();
}
return null;
}
}
package com.jsu.shape;
public class Test {
public static void main(String[] args) {
//第一种写法
ShapeFactory shapeFactory = new ShapeFactory();
Shape circle = shapeFactory.getShape("Circle");
circle.draw();
Shape square = shapeFactory.getShape("ChangFangXin");
square.draw();
//第二种写法
shapeFactory.getShape("Circle").draw();
shapeFactory.getShape("ChangFangXin").draw();
}
}
运行结果为
圆
长方形
圆
长方形