3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

インフラの分野でも、Iac化が進んで行くと考えています。そこで、ノウハウが体系だっているものが学び易いと考えて、Javaを学びはじめました。

今回は、インターフェース にフォーカスしました。
ラムダ式を使って Algorithm インターフェースを実装し、Service クラスに設定して処理を実行するケースで、インターフェースの使い方を整理してみました。

perform メソッドを定義。

interface Algorithm {
    void perform(String name); // メソッド定義
}

setLogic メソッドでロジックを設定し、doProcess メソッドで処理を実行。

class Service {
    private Algorithm logic; // Algorithm型のインスタンスを保持

    // setLogicメソッドでロジックを設定
    public void setLogic(Algorithm logic) {
        this.logic = logic;
    }

    // doProcessメソッドで処理を実行
    public void doProcess(String name) {
        System.out.println("start");  // 処理の開始を表示
        this.logic.perform(name);     // ロジックの実行
        System.out.println("end");    // 処理の終了を表示
    }
}

Main クラスで、ラムダ式を使って Algorithm インターフェースを実装。このラムダ式は、name を受け取って "hello, " と結合して表示。その後、Service クラスのインスタンスを作成し、ロジックを設定して処理を実行。

public class Main {
    public static void main(String[] args) {
        // Lambda式を使ってAlgorithmインターフェースを実装
        Algorithm algorithm = (name) -> {
            System.out.println("hello, " + name);  
        };

        // Serviceインスタンスを作成
        Service s = new Service();
        s.setLogic(algorithm); // ロジックをセット
        s.doProcess("Lambda"); // "Lambda"という名前を渡して処理実行
    }
}

実行結果

start
hello, Lambda
end

複数の異なるアルゴリズムを設定したい場合

Algorithm インターフェースを使って異なるロジックを定義し、切り替えることができる。

public class Main {
    public static void main(String[] args) {
        // 1つ目のロジック
        Algorithm algorithm1 = (name) -> {
            System.out.println("hello, " + name);
        };

        // 2つ目のロジック
        Algorithm algorithm2 = (name) -> {
            System.out.println("goodbye, " + name);
        };

        // Serviceインスタンスを作成
        Service s = new Service();

        // 最初のロジックを設定して実行
        s.setLogic(algorithm1);
        s.doProcess("Lambda");

        // 2番目のロジックを設定して実行
        s.setLogic(algorithm2);
        s.doProcess("Lambda");
    }
}

実行結果

start
hello, Lambda
end
start
goodbye, Lambda
end

Service クラスに設定する Algorithm を切り替えることで、処理を柔軟に変更することができますね。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?