JAVA工厂模式-案例

Java工厂模式

// Shape接口  
public interface Shape {  
    void draw();  
}  
  
// Circle类,实现了Shape接口  
public class Circle implements Shape {  
    @Override  
    public void draw() {  
        System.out.println("Draw Circle");  
    }  
}  
  
// Square类,实现了Shape接口  
public class Square implements Shape {  
    @Override  
    public void draw() {  
        System.out.println("Draw Square");  
    }  
}  
  
// Rectangle类,实现了Shape接口  
public class Rectangle implements Shape {  
    @Override  
    public void draw() {  
        System.out.println("Draw Rectangle");  
    }  
}  
  
// Shape工厂类  
public class ShapeFactory {  
    // 使用 getShape 方法获取形状类型的对象  
    public Shape getShape(String shapeType){  
        if(shapeType == null){  
            return null;  
        }          
        if(shapeType.equalsIgnoreCase("CIRCLE")){  
            return new Circle();  
        } else if(shapeType.equalsIgnoreCase("RECTANGLE")){  
            return new Rectangle();  
        } else if(shapeType.equalsIgnoreCase("SQUARE")){  
            return new Square();  
        }  
        return null;  
    }  
}  
  
// 测试类  
public class FactoryPatternDemo {  
    public static void main(String[] args) {  
        ShapeFactory shapeFactory = new ShapeFactory();  
  
        //获取 Circle 的对象,并调用它的 draw 方法  
        Shape shape1 = shapeFactory.getShape("CIRCLE");  
        shape1.draw();  
  
        //获取 Rectangle 的对象,并调用它的 draw 方法  
        Shape shape2 = shapeFactory.getShape("RECTANGLE");  
        shape2.draw();  
          
        //获取 Square 的对象,并调用它的 draw 方法  
        Shape shape3 = shapeFactory.getShape("SQUARE");  
        shape3.draw();  
    }  
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ThinkPet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值