-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFactorypattenDemo.java
More file actions
36 lines (33 loc) · 902 Bytes
/
Copy pathFactorypattenDemo.java
File metadata and controls
36 lines (33 loc) · 902 Bytes
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
interface Shape {
void draw();
}
class Circle implements Shape{
public void draw(){
System.out.println("Drawing a Circle.");
}
}
class Square implements Shape{
public void draw(){
System.out.println("Drawing a Square");
}
}
class ShapeFactory{
public Shape getShape (String shapeType){
if(shapeType == null)
return null;
switch (shapeType . toLowerCase()) {
case "circle": return new Circle();
case "square": return new Square();
default: return null;
}
}
}
public class FactorypattenDemo{
public static void main (String[] args){
ShapeFactory factory = new ShapeFactory();
Shape shape1 = factory.getShape("circle");
shape1.draw();
Shape shape2 = factory.getShape ("square");
shape2.draw();
}
}