[Java]テンプレートメソッド
📕1.テンプレートの方法
1-1. テンプレートメソッドとは?
💡 テンプレートとは、辞書で用語を検索するフレームワークまたはサンプルです.
つまり、これはフレームワークのある方法です.
📢 テンプレートメソッドは抽象クラスを使用して実装できます.
📕2.テンプレートメソッドの例
2-1. テンプレート・メソッドを使用した抽象クラスの作成
public abstract class Car
{
// 추상 메서드
public abstract void drive();
public abstract void stop();
// 일반 메서드
public void startCar()
{
System.out.println("시동을 켭니다.");
}
// 일반 메서드
public void turnOff()
{
System.out.println("시동을 끕니다.");
}
// 템플릿 메서드
final public void run()
{
startCar();
drive();
stop();
turnOff();
}
}////////////////// class
2-1. テンプレート・メソッドを使用した抽象クラスの作成
public abstract class Car
{
// 추상 메서드
public abstract void drive();
public abstract void stop();
// 일반 메서드
public void startCar()
{
System.out.println("시동을 켭니다.");
}
// 일반 메서드
public void turnOff()
{
System.out.println("시동을 끕니다.");
}
// 템플릿 메서드
final public void run()
{
startCar();
drive();
stop();
turnOff();
}
}////////////////// class
drive(), stop()
抽象メソッドを使用するCarクラスが作成されました.3つの実装方法
start(), turnOff(), run()
を有する.自動車の起動とシャットダウンの方法は、どの自動車とも同様に、事前にコードを実現している.
drive() 와 turnOff()
は、異なる車種に応じて異なる方法で移動できると主張しているため、抽象的な方法を採用している.テンプレート法
run()
は、自動車の走行方法を順次実現している.継承される等級は、自主走行の
AICar 클래스
と一般自動車ManualCar 클래스
である.この2つのクラスは
Car 클래스
を継承するので、実装されていないすべての抽象的な方法を実装する必要があります.2-2. AICarクラスの作成
public class AICar extends Car
{
@Override
// override - car클래스의 추상메서드를 재정의 한다는 의미
public void drive()
{
System.out.println("자율 주행합니다.");
System.out.println("자동차가 알아서 방향을 전환합니다.");
}
@Override
// override - car클래스의 추상메서드를 재정의 한다는 의미
public void stop()
{
System.out.println("스스로 멈춥니다.");
}
}////////////////// class
AICar 클래스
はCar 클래스
を継承し、drive() , stop()
抽象法を実現した.AICar 클래스
は自主走行を行い、自分で方向を変える.2-3. ManualCarクラスの作成
public class ManualCar extends Car
{
@Override
// override - car클래스의 추상메서드를 재정의 한다는 의미
public void drive()
{
System.out.println("사람이 운전합니다.");
System.out.println("사람이 핸들을 조작합니다.");
}
@Override
// override - car클래스의 추상메서드를 재정의 한다는 의미
public void stop()
{
System.out.println("브레이크로 정지합니다.");
}
}////////////////// class
ManualCar 클래스
もAICar 클래스
と同様にCar 클래스
を継承している.抽象法
drive() 와 stop()
を実現した.ManualCar 클래스
ハンドルの走行と停止を直接操作するには、ブレーキを踏むだけです.2-4. テストプログラムの作成
AICar 클래스
とManualCar 클래스
を使用してテストプログラムを作成public class CarTest
{
public static void main(String[] args)
{
System.out.println("=== 자율 주행하는 자동차 ===");
// Car 클래스 형태로 AICar 객체생성
Car myCar = new AICar();
myCar.run();
System.out.println("=== 사람이 운전하는 자동차 ===");
// Car 클래스 형태로 ManualCar 객체생성
Car hisCar = new ManualCar();
hisCar.run();
}
}////////////////// class
💡 출력 화면
=== 자율 주행하는 자동차 ===
시동을 켭니다.
자율 주행합니다.
자동차가 알아서 방향을 전환합니다.
스스로 멈춥니다.
시동을 끕니다.
=== 사람이 운전하는 자동차 ===
시동을 켭니다.
사람이 운전합니다.
사람이 핸들을 조작합니다.
브레이크로 정지합니다.
시동을 끕니다.
2-5. テンプレートメソッドの役割
💡 メソッドの実行順序とシナリオ.
テンプレートメソッド自体は抽象メソッドではないため、サブクラスで再定義することはできません.
final
という名前の予約語を使用する必要があります.Reference
この問題について([Java]テンプレートメソッド), 我々は、より多くの情報をここで見つけました https://velog.io/@xnfxnf97/Java-템플릿-메서드テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol