java 模板方法模式 例子
时间: 2023-05-20 21:02:18 浏览: 85
一个简单的 Java 模板方法模式的例子如下:
```
public abstract class AbstractClass {
public void templateMethod() {
primitiveOperation1();
primitiveOperation2();
}
protected abstract void primitiveOperation1();
protected abstract void primitiveOperation2();
}
public class ConcreteClass extends AbstractClass {
protected void primitiveOperation1() {
System.out.println("ConcreteClass.primitiveOperation1() called.");
}
protected void primitiveOperation2() {
System.out.println("ConcreteClass.primitiveOperation2() called.");
}
}
public class Main {
public static void main(String[] args) {
AbstractClass abstractClass = new ConcreteClass();
abstractClass.templateMethod();
}
}
```
在这个例子中,`AbstractClass` 是一个抽象类,其中定义了一个模板方法 `templateMethod()`,该方法调用了两个抽象方法 `primitiveOperation1()` 和 `primitiveOperation2()`。`ConcreteClass` 是一个具体类,它继承了 `AbstractClass` 并实现了 `primitiveOperation1()` 和 `primitiveOperation2()` 方法。在 `Main` 类中,我们创建了一个 `ConcreteClass` 对象并调用了 `templateMethod()` 方法,这将依次调用 `primitiveOperation1()` 和 `primitiveOperation2()` 方法。输出结果为:
```
ConcreteClass.primitiveOperation1() called.
ConcreteClass.primitiveOperation2() called.
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)