抽象工厂模式实现服装工厂
时间: 2023-06-23 20:54:30 浏览: 127
好的,抽象工厂模式可以用来创建一系列相互关联的产品,而这些产品又可以分为不同的类别。在服装工厂中,我们可以将产品分为上衣、裤子、鞋子等,而这些产品都可以由不同的材料、颜色、品牌等组成。
首先,我们需要定义一个抽象工厂接口,它包含了创建各种产品的方法:
```java
public interface ClothesFactory {
Shirt createShirt();
Pants createPants();
Shoes createShoes();
}
```
然后,我们需要定义具体的服装工厂类,比如 Adidas 工厂、Nike 工厂等,这些工厂都实现了抽象工厂接口:
```java
public class AdidasFactory implements ClothesFactory {
@Override
public Shirt createShirt() {
return new AdidasShirt();
}
@Override
public Pants createPants() {
return new AdidasPants();
}
@Override
public Shoes createShoes() {
return new AdidasShoes();
}
}
public class NikeFactory implements ClothesFactory {
@Override
public Shirt createShirt() {
return new NikeShirt();
}
@Override
public Pants createPants() {
return new NikePants();
}
@Override
public Shoes createShoes() {
return new NikeShoes();
}
}
```
这里,每个具体的工厂类都实现了创建各种产品的方法,比如 Adidas 工厂可以创建 Adidas 上衣、裤子和鞋子,Nike 工厂可以创建 Nike 上衣、裤子和鞋子。
最后,我们需要定义具体的产品类,比如 Adidas 上衣、裤子和鞋子、Nike 上衣、裤子和鞋子等。这里以 Adidas 上衣为例:
```java
public class AdidasShirt implements Shirt {
public AdidasShirt() {
System.out.println("Adidas 上衣");
}
}
```
这里,Adidas 上衣实现了 Shirt 接口,并在构造函数中输出了“Adidas 上衣”的信息。
这样,我们就可以通过具体的服装工厂来创建各种产品了,比如:
```java
ClothesFactory factory = new AdidasFactory();
Shirt shirt = factory.createShirt(); // 输出 "Adidas 上衣"
Pants pants = factory.createPants(); // 输出 "Adidas 裤子"
Shoes shoes = factory.createShoes(); // 输出 "Adidas 鞋子"
```
同样的,我们也可以通过 Nike 工厂来创建各种产品。
阅读全文