您的位置:首页 > 其它

lintcode:形状工厂

2016-07-07 16:43 288 查看
题目工厂模式是一种常见的设计模式。实现一个形状工厂
ShapeFactory
来创建不同的形状类。这里我们假设只有三角形,正方形和矩形三种形状。样例
ShapeFactory sf = new ShapeFactory();
Shape shape = sf.getShape("Square");
shape.draw();
>>  ----
>> |    |
>> |    |
>>  ----

shape = sf.getShape("Triangle");
shape.draw();
>>   /\
>>  /  \
>> /____\

shape = sf.getShape("Rectangle");
shape.draw();
>>  ----
>> |    |
>>  ----
解题
直接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
public void draw(){
System.out.println(" ----");
System.out.println("|    |");
System.out.println(" ----");
}
}

class Square implements Shape {
// Write your code here
public void draw(){
System.out.println(" ----");
System.out.println("|    |");
System.out.println("|    |");
System.out.println(" ----");
}

}

class Triangle implements Shape {
// Write your code here
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.equals("Square")){
return new Square();
}
if(shapeType.equals("Rectangle")){
return new Rectangle();
}
if(shapeType.equals("Triangle")){
return new Triangle();
}
return null;
}
}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: