设计模式抽象服装工厂
时间: 2023-10-16 08:06:05 浏览: 38
抽象工厂是一种创建对象的设计模式,它提供了一个接口来创建一系列相关或相互依赖的对象,而无需指定其具体类。在服装工厂的场景中,我们可以使用抽象工厂模式来创建不同类型的服装。
首先,我们需要定义一个抽象工厂接口,该接口包含了创建不同类型服装的方法:
```java
public interface ClothingFactory {
Shirt createShirt();
Pants createPants();
}
```
然后,我们实现具体的服装工厂类,例如 NikeFactory 和 AdidasFactory,它们都实现了 ClothingFactory 接口,并分别实现了创建不同品牌的衬衫和裤子的方法。
```java
public class NikeFactory implements ClothingFactory {
@Override
public Shirt createShirt() {
return new NikeShirt();
}
@Override
public Pants createPants() {
return new NikePants();
}
}
public class AdidasFactory implements ClothingFactory {
@Override
public Shirt createShirt() {
return new AdidasShirt();
}
@Override
public Pants createPants() {
return new AdidasPants();
}
}
```
在具体的衬衫和裤子类中,我们可以根据需要添加更多属性和方法。
```java
public interface Shirt {
void showInfo();
}
public class NikeShirt implements Shirt {
@Override
public void showInfo() {
System.out.println("This is a Nike shirt.");
}
}
public class AdidasShirt implements Shirt {
@Override
public void showInfo() {
System.out.println("This is an Adidas shirt.");
}
}
public interface Pants {
void showInfo();
}
public class NikePants implements Pants {
@Override
public void showInfo() {
System.out.println("This is a Nike pants.");
}
}
public class AdidasPants implements Pants {
@Override
public void showInfo() {
System.out.println("This is an Adidas pants.");
}
}
```
使用抽象工厂模式,我们可以通过创建具体的工厂对象来获取需要的服装,并使用相同的方式调用它们的方法。
```java
public class Main {
public static void main(String[] args) {
ClothingFactory nikeFactory = new NikeFactory();
ClothingFactory adidasFactory = new AdidasFactory();
Shirt nikeShirt = nikeFactory.createShirt();
Shirt adidasShirt = adidasFactory.createShirt();
Pants nikePants = nikeFactory.createPants();
Pants adidasPants = adidasFactory.createPants();
nikeShirt.showInfo();
adidasShirt.showInfo();
nikePants.showInfo();
adidasPants.showInfo();
}
}
```
输出结果:
```
This is a Nike shirt.
This is an Adidas shirt.
This is a Nike pants.
This is an Adidas pants.
```