java 工厂方法模式 代码示例
时间: 2023-09-24 17:05:34 浏览: 55
### 回答1:
好的,以下是一个简单的 Java 工厂方法模式的示例代码:
```
// 定义一个产品接口
interface Product {
void use();
}
// 具体产品1
class ConcreteProduct1 implements Product {
@Override
public void use() {
System.out.println("使用具体产品1");
}
}
// 具体产品2
class ConcreteProduct2 implements Product {
@Override
public void use() {
System.out.println("使用具体产品2");
}
}
// 工厂类
class Factory {
public Product createProduct(String type) {
if ("1".equals(type)) {
return new ConcreteProduct1();
} else if ("2".equals(type)) {
return new ConcreteProduct2();
}
return null; // 未知产品类型返回 null
}
}
// 测试代码
public class Client {
public static void main(String[] args) {
Factory factory = new Factory();
Product product1 = factory.createProduct("1");
Product product2 = factory.createProduct("2");
product1.use();
product2.use();
}
}
```
在上面的代码中,我们定义了一个 `Product` 接口和两个具体产品类 `ConcreteProduct1` 和 `ConcreteProduct2`。接着定义了一个 `Factory` 工厂类,其中的 `createProduct()` 方法根据传入的产品类型参数来创建相应的产品对象。最后在测试代码中,通过工厂类创建了两个产品对象并调用了它们的 `use()` 方法。
这就是一个简单的 Java 工厂方法模式的示例代码,希望能帮助到你。
### 回答2:
工厂方法模式是一种创建型设计模式,它提供了一种创建对象的接口,但是具体的对象实例化的过程由子类决定。下面是一个使用Java实现工厂方法模式的代码示例:
```java
// 定义一个产品接口
interface Product {
void operation();
}
// 定义一个具体产品A
class ConcreteProductA implements Product {
@Override
public void operation() {
System.out.println("具体产品A的操作");
}
}
// 定义一个具体产品B
class ConcreteProductB implements Product {
@Override
public void operation() {
System.out.println("具体产品B的操作");
}
}
// 定义一个工厂接口
interface Factory {
Product createProduct();
}
// 定义一个具体工厂A,用于创建产品A
class ConcreteFactoryA implements Factory {
@Override
public Product createProduct() {
return new ConcreteProductA();
}
}
// 定义一个具体工厂B,用于创建产品B
class ConcreteFactoryB implements Factory {
@Override
public Product createProduct() {
return new ConcreteProductB();
}
}
public class Main {
public static void main(String[] args) {
// 使用具体工厂A创建产品A
Factory factoryA = new ConcreteFactoryA();
Product productA = factoryA.createProduct();
productA.operation();
// 使用具体工厂B创建产品B
Factory factoryB = new ConcreteFactoryB();
Product productB = factoryB.createProduct();
productB.operation();
}
}
```
在上面的代码中,通过定义产品接口和具体产品类,来实现不同产品的创建和操作。然后,通过定义工厂接口和具体工厂类,来创建具体的产品对象。最后,在主函数中使用不同的具体工厂来创建各种产品,从而实现了工厂方法模式。
以上就是一个简单的Java工厂方法模式的代码示例。
### 回答3:
工厂方法模式是一种创建型设计模式,用于解决对象的创建过程与使用过程的耦合问题。该模式将对象的创建交给子类来完成,而不是在父类中直接创建对象。
下面是一个使用Java实现的工厂方法模式的代码示例:
首先,我们定义一个工厂接口(Factory),里面声明一个创建对象的方法(createProduct):
```
public interface Factory {
Product createProduct();
}
```
然后,我们创建一个具体的工厂类(ConcreteFactory),实现上述工厂接口:
```
public class ConcreteFactory implements Factory {
@Override
public Product createProduct() {
return new ConcreteProduct();
}
}
```
接下来,我们定义一个产品接口(Product),里面声明产品的方法:
```
public interface Product {
void operate();
}
```
再创建一个具体的产品类(ConcreteProduct),实现上述产品接口:
```
public class ConcreteProduct implements Product {
@Override
public void operate() {
System.out.println("ConcreteProduct is operating.");
}
}
```
最后,我们使用工厂方法创建产品对象:
```
public class Main {
public static void main(String[] args) {
Factory factory = new ConcreteFactory();
Product product = factory.createProduct();
product.operate();
}
}
```
通过上述代码示例,我们可以看到工厂方法模式的具体应用。在实际使用中,工厂方法模式能够根据不同的需求动态创建对象,提高代码的扩展性和灵活性。