上官可编程简单工厂模式
时间: 2023-09-24 18:06:03 浏览: 53
简单工厂模式是一种创建对象的设计模式,它属于创建型模式的一种。在简单工厂模式中,我们通过一个工厂类来创建对象,而不是直接通过new关键字实例化对象。简单工厂模式将对象的创建逻辑封装在工厂类中,客户端只需调用工厂类的方法即可获取所需的对象。
下面以一个上官(假设是某个游戏角色)的可编程简单工厂模式为例进行解释:
首先,我们需要定义一个上官角色的基类或接口,用于表示所有上官角色的共有行为和属性。
```java
public interface ShangGuan {
void attack();
void defend();
}
```
然后,我们可以定义不同类型的上官角色,它们实现了上官角色基类或接口。
```java
public class ShangGuanWarrior implements ShangGuan {
@Override
public void attack() {
System.out.println("上官战士攻击");
}
@Override
public void defend() {
System.out.println("上官战士防御");
}
}
public class ShangGuanMage implements ShangGuan {
@Override
public void attack() {
System.out.println("上官法师攻击");
}
@Override
public void defend() {
System.out.println("上官法师防御");
}
}
```
接下来,我们可以创建一个简单工厂类,用于根据客户端的需求创建相应类型的上官角色对象。
```java
public class ShangGuanFactory {
public static ShangGuan createShangGuan(String type) {
if (type.equalsIgnoreCase("warrior")) {
return new ShangGuanWarrior();
} else if (type.equalsIgnoreCase("mage")) {
return new ShangGuanMage();
}
return null;
}
}
```
最后,客户端可以通过调用工厂类的静态方法来获取所需的上官角色对象,并调用其方法进行相应操作。
```java
public class Client {
public static void main(String[] args) {
ShangGuan warrior = ShangGuanFactory.createShangGuan("warrior");
warrior.attack(); // 输出:上官战士攻击
warrior.defend(); // 输出:上官战士防御
ShangGuan mage = ShangGuanFactory.createShangGuan("mage");
mage.attack(); // 输出:上官法师攻击
mage.defend(); // 输出:上官法师防御
}
}
```
通过简单工厂模式,我们可以将对象的创建过程封装起来,客户端只需通过工厂类来获取对象,而无需关心对象的具体创建细节。这样可以降低客户端和具体对象之间的耦合度,提高代码的可维护性和灵活性。