能用java给我写一个抽象模板工厂吗
时间: 2023-12-21 17:06:37 浏览: 22
当然可以,以下是一个简单的抽象模板工厂的Java代码示例:
```
// 抽象工厂接口
public interface AbstractFactory {
public Template createTemplate();
}
// 具体工厂1
public class ConcreteFactory1 implements AbstractFactory {
public Template createTemplate() {
return new ConcreteTemplate1();
}
}
// 具体工厂2
public class ConcreteFactory2 implements AbstractFactory {
public Template createTemplate() {
return new ConcreteTemplate2();
}
}
// 抽象模板类
public abstract class Template {
public abstract void doSomething();
}
// 具体模板类1
public class ConcreteTemplate1 extends Template {
public void doSomething() {
System.out.println("ConcreteTemplate1 doSomething");
}
}
// 具体模板类2
public class ConcreteTemplate2 extends Template {
public void doSomething() {
System.out.println("ConcreteTemplate2 doSomething");
}
}
// 客户端使用示例
public class Client {
public static void main(String[] args) {
AbstractFactory factory1 = new ConcreteFactory1();
Template template1 = factory1.createTemplate();
template1.doSomething();
AbstractFactory factory2 = new ConcreteFactory2();
Template template2 = factory2.createTemplate();
template2.doSomething();
}
}
```
在上面的示例中,抽象工厂接口`AbstractFactory`定义了一个`createTemplate()`方法,用于创建一个抽象模板类`Template`的实例。具体工厂`ConcreteFactory1`和`ConcreteFactory2`分别实现了`AbstractFactory`接口,分别创建了具体模板类`ConcreteTemplate1`和`ConcreteTemplate2`的实例。抽象模板类`Template`定义了一个抽象方法`doSomething()`,具体模板类`ConcreteTemplate1`和`ConcreteTemplate2`分别实现了该方法。客户端使用示例`Client`演示了如何使用抽象工厂来创建抽象模板类的实例。