简单工厂模式具体例子
时间: 2024-09-13 08:12:50 浏览: 11
简单工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,而无需暴露其内部的创建细节。这种方式使得客户端代码不需要关心实例化过程,只需要使用工厂提供的接口来获取需要的对象。
举个简单的例子,比如我们在做一款游戏,游戏中有多种类型的武器,如剑、弓箭和枪械。我们可以创建一个名为`WeaponFactory`的简单工厂:
```java
// Weapon抽象类
abstract class Weapon {
public abstract void use();
}
// 具体武器类
class Sword extends Weapon {
@Override
public void use() {
System.out.println("挥舞剑");
}
}
class Bow extends Weapon {
@Override
public void use() {
System.out.println("射箭");
}
}
class Gun extends Weapon {
@Override
public void use() {
System.out.println("开枪");
}
}
// 简单工厂类
class WeaponFactory {
public static Weapon createWeapon(String weaponType) {
switch (weaponType) {
case "sword":
return new Sword();
case "bow":
return new Bow();
case "gun":
return new Gun();
default:
throw new IllegalArgumentException("未知的武器类型");
}
}
}
```
在这个例子中,客户端只需通过调用`WeaponFactory.createWeapon()`并传入相应的武器类型,就能得到所需的具体武器实例。这样就实现了隐藏了具体武器类的创建细节,提高了代码的灵活性和可维护性。