设计模式之工厂模式

工厂模式是一种创建型设计模式,其目的是封装对象的创建过程,并允许客户端通过工厂接口来获取新的对象。以下是一个简单的示例,说明如何使用工厂模式来创建不同类型的产品。

假设我们要设计一个水果商店系统,其中有苹果、香蕉和橘子三种水果可以销售。此时,我们可以使用工厂模式来创建这些水果对象,具体实现如下:

  1. 定义水果类:首先,我们需要定义一个Fruit抽象类,作为所有水果类的基类,它包含了水果的共同属性和方法。
public abstract class Fruit {
    public abstract void eat();
}
  1. 定义具体水果类:然后,我们定义具体的水果类,例如AppleBananaOrange,它们继承自Fruit,并实现了eat()方法。
public class Apple extends Fruit {
    @Override
    public void eat() {
        System.out.println("Eat an apple.");
    }
}

public class Banana extends Fruit {
    @Override
    public void eat() {
        System.out.println("Peel and eat a banana.");
    }
}

public class Orange extends Fruit {
    @Override
    public void eat() {
        System.out.println("Peel and eat an orange.");
    }
}
  1. 定义工厂接口:接着,我们需要定义一个工厂接口FruitFactory,用于创建不同类型的水果对象。
public interface FruitFactory {
    Fruit createFruit();
}
  1. 实现工厂类:最后,我们可以创建一个具体的工厂类,例如AppleFactoryBananaFactoryOrangeFactory,它们实现了FruitFactory接口,并负责创建相应的水果对象。
public class AppleFactory implements FruitFactory {
    @Override
    public Fruit createFruit() {
        return new Apple();
    }
}

public class BananaFactory implements FruitFactory {
    @Override
    public Fruit createFruit() {
        return new Banana();
    }
}

public class OrangeFactory implements FruitFactory {
    @Override
    public Fruit createFruit() {
        return new Orange();
    }
}
  1. 使用工厂模式创建对象:现在,我们可以通过工厂接口来创建新的水果对象,例如:
FruitFactory factory = new AppleFactory();
Fruit fruit = factory.createFruit();
fruit.eat(); // Output: Eat an apple.

这里我们创建了一个AppleFactory对象,然后使用它的createFruit()方法来创建一个新的苹果对象。最后,我们调用苹果对象的eat()方法,输出了"Eat an apple."的结果。

同样的方式也适用于其他类型的水果对象,只需要使用对应的工厂类即可。这样就避免了客户端直接创建对象,降低了耦合度,增加了代码的灵活性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值