設計模式-模板方法模式
1.概述
模板方法模式是在一個方法中定義一個演算法的骨架,而將一些步驟延遲到子類中,模板方法使得子類可以在不改變演算法結構的情況下,重新定義演算法中的某些步驟,
2.類圖

3.角色
- AbstractClass:含有模板方法的類
- ConcreteClassA,ConcreteClassB:具體的實作類,
4.實作
1.AbstractClass
public abstract class AbstractClass {
//這個方法就是模板方法,定義為final放置子類重寫,
final void templateMethod(){
Operation1();
concreteOperation();
if(hook()){
Operation2();
}
}
abstract void Operation1();//子類要重寫的方法
abstract void Operation2();//子類要重寫的方法
void concreteOperation(){
System.out.println("TemplateMethod");
}
public Boolean hook(){
return true;
}
}
2.ConcreteClassA
public class ConcreteClassA extends AbstractClass{
void Operation1() {
System.out.println(this.toString()+"Opreation1");
}
void Operation2() {
System.out.println(this.toString()+"Opreation2");
}
}
3.ConcreteClassB
public class ConcreteClassB extends AbstractClass{
void Operation1() {
System.out.println(this.toString()+"Operation1");
}
void Operation2() {
System.out.println(this.toString()+"Operation2");
}
@Override
public Boolean hook() {
return false;
}
}
Main方法:
public class Main {
public static void main(String[] args) {
ConcreteClassA concreteClassA = new ConcreteClassA();
ConcreteClassB concreteClassB = new ConcreteClassB();
concreteClassA.templateMethod();
concreteClassB.templateMethod();
}
}
結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/260037.html
標籤:java
上一篇:RabbitMQ 跟 springBoot 整合,相關組件
下一篇:Java核心之常見時間日期
