工厂方法模式应用案例
时间: 2023-06-21 11:24:40 浏览: 43
工厂方法模式是一种创建型设计模式,它通过定义一个用于创建对象的接口,让子类决定实例化哪一个类。下面是一个工厂方法模式的应用案例:
假设我们正在开发一个游戏,游戏中有多个角色,每个角色都有不同的属性和技能。我们需要根据玩家的选择来创建不同的角色。我们可以使用工厂方法模式来实现这个功能。
首先,定义一个角色接口,包含角色的属性和技能:
```
public interface Role {
void setAttribute();
void setSkill();
}
```
然后,定义不同的角色类实现角色接口:
```
public class Warrior implements Role {
@Override
public void setAttribute() {
// 设置战士的属性
}
@Override
public void setSkill() {
// 设置战士的技能
}
}
public class Mage implements Role {
@Override
public void setAttribute() {
// 设置法师的属性
}
@Override
public void setSkill() {
// 设置法师的技能
}
}
```
接着,定义一个角色工厂接口,用于创建角色:
```
public interface RoleFactory {
Role createRole();
}
```
最后,定义不同的角色工厂类实现角色工厂接口,用于创建不同的角色:
```
public class WarriorFactory implements RoleFactory {
@Override
public Role createRole() {
return new Warrior();
}
}
public class MageFactory implements RoleFactory {
@Override
public Role createRole() {
return new Mage();
}
}
```
使用工厂方法模式,我们可以根据玩家的选择来创建不同的角色:
```
RoleFactory factory;
Role role;
if (playerChoice == 1) {
factory = new WarriorFactory();
role = factory.createRole();
} else if (playerChoice == 2) {
factory = new MageFactory();
role = factory.createRole();
}
```