Java简单工厂模式举例

该博客介绍了Java中的简单工厂模式,通过一个工厂类ActionFactory创建DogAction和CatAction对象,这两个对象实现了Action接口并有不同的行为。示例展示了如何根据传入的参数返回不同类型的实例,并调用其实现特定功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java简单的工厂模式例子:

//工厂类
class ActionFactory{
    //获取对应的实体类
    public static Action getAction(int type){
        if (0 == type){
            return new DogAction();
        }else {
            return new CatAction();
        }
    }
}

//接口
interface Action{
    void doSamthing();
}

class DogAction implements Action{
    @Override
    public void doSamthing() {
        System.out.println("狗吃猪肉");
    }
}

class CatAction implements Action{
    @Override
    public void doSamthing() {
        System.out.println("猫吃鱼肉");
    }
}

调用:

Action action = ActionFactory.getAction(0);
action.doSamthing();
Java 工厂模式的主要目的是创建对象,使得客户端从具体类解耦,而只依赖于接口或抽象类。在 Java 中,工厂模式通常有三种形式:简单工厂工厂方法和抽象工厂。 下面以工厂方法为例,举一个简单的例子: ``` // 定义一个工厂接口 interface ShapeFactory { Shape createShape(); } // 实现工厂接口,创建具体的对象 class CircleFactory implements ShapeFactory { public Shape createShape() { return new Circle(); } } class RectangleFactory implements ShapeFactory { public Shape createShape() { return new Rectangle(); } } // 定义一个基础的形状接口 interface Shape { void draw(); } // 实现具体的形状 class Circle implements Shape { public void draw() { System.out.println("Drawing Circle..."); } } class Rectangle implements Shape { public void draw() { System.out.println("Drawing Rectangle..."); } } // 使用工厂创建对象 public class Main { public static void main(String[] args) { ShapeFactory factory = new CircleFactory(); Shape shape = factory.createShape(); shape.draw(); // Output: Drawing Circle... factory = new RectangleFactory(); shape = factory.createShape(); shape.draw(); // Output: Drawing Rectangle... } } ``` 在这个例子中,我们定义了一个工厂接口 `ShapeFactory`,并实现了具体的工厂类 `CircleFactory` 和 `RectangleFactory`,它们分别创建 `Circle` 和 `Rectangle` 对象。同时,我们定义了一个基础的形状接口 `Shape`,并实现了具体的形状类 `Circle` 和 `Rectangle`。在 `Main` 类中,我们通过工厂方法创建了 `Circle` 和 `Rectangle` 对象,并调用了 `draw()` 方法来绘制它们的形状。 通过这种方式,客户端只需要依赖于工厂接口 `ShapeFactory`,而不需要知道具体的实现类。这样,当我们需要添加新的形状时,只需要实现一个新的工厂类和形状类,并在客户端中使用即可,而不需要修改原有的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值