在工廠模式中,我們在創(chuàng)建對象時不會對客戶端暴露創(chuàng)建邏輯,并且是通過使用一個共同的接口來指向新創(chuàng)建的對象。定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪個類,解決不同條件下創(chuàng)建不同的類。簡單實現(xiàn)如下:
1.創(chuàng)建接口
public interface Shape {
void draw();
}
2.創(chuàng)建各種實體類
public class Triangle implements Shape{
@Override
public void draw() {
System.out.println("draw Triangle");
}
}
public class Circle implements Shape{
@Override
public void draw() {
System.out.println("draw Circle");
}
}
3.創(chuàng)建工廠類
public class ShapeFactory {
public Shape getShape(String type){
if(type == null)
return null;
switch (type){
case "triangle":
return new Triangle();
case "circle":
return new Circle();
default:
return null;
}
}
}
4.測試類
public class FactoryDemo {
public static void main(String[] args) {
ShapeFactory factory = new ShapeFactory();
Shape shape = factory.getShape("circle");
shape.draw();
}
}