详细举例说明工厂方法模式
时间: 2023-06-23 08:44:50 浏览: 89
工厂方法模式是一种创建型设计模式,它提供了一种将对象的创建与使用分离的方式。在工厂方法模式中,我们定义一个工厂接口,该接口声明用于创建对象的工厂方法。然后我们创建具体的工厂类来实现这个接口,并创建具体的产品类来实现工厂方法。
下面举个例子,假设我们正在开发一个游戏,游戏中有多种角色(如战士、法师等),每种角色都有自己的特点和属性。为了创建这些角色,我们可以使用工厂方法模式。
首先,我们定义一个角色接口,包含了角色的基本属性和方法:
```java
public interface Role {
void attack();
void defend();
void display();
}
```
然后我们创建一个具体的角色类,实现角色接口:
```java
public class Warrior implements Role {
@Override
public void attack() {
System.out.println("Warrior attack!");
}
@Override
public void defend() {
System.out.println("Warrior defend!");
}
@Override
public void display() {
System.out.println("Warrior display!");
}
}
```
接下来,我们定义一个工厂接口,用于创建角色:
```java
public interface RoleFactory {
Role createRole();
}
```
然后我们创建具体的工厂类,实现工厂接口,用于创建具体的角色:
```java
public class WarriorFactory implements RoleFactory {
@Override
public Role createRole() {
return new Warrior();
}
}
```
最后,我们可以使用工厂方法来创建具体的角色:
```java
public class Game {
public static void main(String[] args) {
RoleFactory roleFactory = new WarriorFactory();
Role role = roleFactory.createRole();
role.attack();
role.defend();
role.display();
}
}
```
在上面的例子中,我们使用工厂方法模式来创建游戏中的角色。通过定义工厂接口和具体的工厂类来实现角色的创建,可以很方便地添加新的角色,同时也使得角色的创建与使用分离,提高了代码的可维护性和可扩展性。
阅读全文