工厂模式是一种常见的设计模式。实现一个形状工厂 ShapeFactory
来创建不同的形状类。这里我们假设只有三角形,正方形和矩形三种形状。
样例
例1:
输入:
ShapeFactory sf = new ShapeFactory();
Shape shape = sf.getShape("Square");
shape.draw();
输出:
----
| |
| |
----
例2:
输入:
ShapeFactory sf = new ShapeFactory();
shape = sf.getShape("Triangle");
shape.draw();
输出:
/\
/ \
/____\
例3:
输入:
ShapeFactory sf = new ShapeFactory();
shape = sf.getShape("Rectangle");
shape.draw();
输出:
----
| |
----
解题思路:
简单工厂。
/**
* Your object will be instantiated and called as such:
* ShapeFactory sf = new ShapeFactory();
* Shape shape = sf.getShape(shapeType);
* shape.draw();
*/
interface Shape {
void draw();
}
class Rectangle implements Shape {
// Write your code here
@Override
public void draw() {
System.out.println(" ---- ");
System.out.println("| |");
System.out.println(" ---- ");
}
}
class Square implements Shape {
// Write your code here
@Override
public void draw() {
System.out.println(" ---- ");
System.out.println("| |");
System.out.println("| |");
System.out.println(" ---- ");
}
}
class Triangle implements Shape {
// Write your code here
@Override
public void draw() {
System.out.println(" /\\");
System.out.println(" / \\");
System.out.println("/____\\");
}
}
public class ShapeFactory {
/**
* @param shapeType a string
* @return Get object of type Shape
*/
public Shape getShape(String shapeType) {
// Write your code here
if(shapeType == null)
return null;
if(shapeType.equals("Square"))
return new Square();
if(shapeType.equals("Triangle"))
return new Triangle();
if(shapeType.equals("Rectangle"))
return new Rectangle();
return null;
}
}