forked from Jensenczx/CodeEveryday
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path101_shapeFactory.java
58 lines (54 loc) · 1.37 KB
/
101_shapeFactory.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/**
* 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
void draw(){
System.out.println(" ----");
System.out.println("| |");
System.out.println("| |");
System.out.println(" ----");
}
}
class Square implements Shape {
// Write your code here
void draw(){
System.out.println(" /\\");
System.out.println(" / \\");
System.out.println("/____\\");
}
}
class Triangle implements Shape {
// Write your code here
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
Shape shape = null;
if(shapeType==null)
return shape;
if(shapeType.equals("Rectangle")){
shape = new Rectangle();
}else if(shapeType.equals("Square")){
shape = new Square();
}else if(shapeType.equals("Triangle")){
shape = new Triangle();
}
return shape;
}
}