お待ちください...

小波Note

四川 · 成都市11 ℃
日本語

Java Template Method

成都 (cheng du)2024/8/26 18:25:411.23k見積もり読書時間 4 分
QRコード
お気に入りCtrl + D / ⌘ + D
cover
IT FB(up 主)
バックエンド開発エンジニア

テンプレートメソッドパターンは、アルゴリズムの骨格をメソッドで定義し、いくつかのステップをサブクラスに遅延させる行動デザインパターンです。テンプレートメソッドを使用すると、サブクラスはアルゴリズムの構造を変更せずに、アルゴリズムの特定のステップを再定義できます。

定义抽象类

java
        public abstract class AbstractClass {
    // 模板方法,定义了算法的骨架
    public final void templateMethod() {
        primitiveOperation1();
        primitiveOperation2();
        concreteOperation();
    }

    // 基本操作(由子类实现)
    protected abstract void primitiveOperation1();
    protected abstract void primitiveOperation2();

    // 具体操作(可以由父类实现,也可以由子类重写)
    private void concreteOperation() {
        System.out.println("Concrete operation in AbstractClass");
    }
}

    

子类实现基本操作

java
        public class ConcreteClass extends AbstractClass {
    @Override
    protected void primitiveOperation1() {
        System.out.println("Primitive Operation 1 in ConcreteClass");
    }

    @Override
    protected void primitiveOperation2() {
        System.out.println("Primitive Operation 2 in ConcreteClass");
    }
}

    

使用模板方法模式

java
        public class TemplateMethodPatternDemo {
    public static void main(String[] args) {
        AbstractClass abstractClass = new ConcreteClass();
        abstractClass.templateMethod();
    }
}

    
星空