戦略パターン
5508 ワード
アルゴリズムのファミリーを定義し、それぞれをカプセル化し、交換可能にします.戦略は、アルゴリズムを使用するクライアントから独立して変化させる.
戦略:すべてのサポートされているアルゴリズムに共通のインターフェイスを宣言します.コンテキストは、具体的な戦略 で定義されたアルゴリズムを呼び出すためにこのインターフェイスを使用します具体的な戦略:戦略インターフェイス を使用してアルゴリズムを実装します文脈:具体的な戦略オブジェクトで構成されます.戦略オブジェクトへのリファレンスを保持します.戦略がデータにアクセスできるインターフェイスを定義します. コード
参加者
コード
public class Main {
public static void main(String[] args) {
Context context;
context = new Context(new ConcreteStrategyA());
context.contextInterface();
context = new Context(new ConcreteStrategyB());
context.contextInterface();
}
}
public interface Strategy {
void algorithmInterface();
}
public class ConcreteStrategyA implements Strategy {
@Override
public void algorithmInterface() {
System.out.println("Called ConcreteStrategyA.AlgorithmInterface()");
}
}
public class ConcreteStrategyB implements Strategy {
@Override
public void algorithmInterface() {
System.out.println("Called ConcreteStrategyB.AlgorithmInterface()");
}
}
public class Context {
private Strategy strategy;
public Context(Strategy strategy) {
this.strategy = strategy;
}
public void contextInterface() {
strategy.algorithmInterface();
}
}
出力
Called ConcreteStrategyA.AlgorithmInterface()
Called ConcreteStrategyB.AlgorithmInterface()
エディエルジュリアン61
/
デザインパターン
メインデザインパターン
アイドル・ Sep 27・ 1分読む
#designpatterns
#creational
#structural
#behavioral
Reference
この問題について(戦略パターン), 我々は、より多くの情報をここで見つけました
https://dev.to/eidher/strategy-pattern-3oa4
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
public class Main {
public static void main(String[] args) {
Context context;
context = new Context(new ConcreteStrategyA());
context.contextInterface();
context = new Context(new ConcreteStrategyB());
context.contextInterface();
}
}
public interface Strategy {
void algorithmInterface();
}
public class ConcreteStrategyA implements Strategy {
@Override
public void algorithmInterface() {
System.out.println("Called ConcreteStrategyA.AlgorithmInterface()");
}
}
public class ConcreteStrategyB implements Strategy {
@Override
public void algorithmInterface() {
System.out.println("Called ConcreteStrategyB.AlgorithmInterface()");
}
}
public class Context {
private Strategy strategy;
public Context(Strategy strategy) {
this.strategy = strategy;
}
public void contextInterface() {
strategy.algorithmInterface();
}
}
Called ConcreteStrategyA.AlgorithmInterface()
Called ConcreteStrategyB.AlgorithmInterface()
エディエルジュリアン61 / デザインパターン
メインデザインパターン
アイドル・ Sep 27・ 1分読む
#designpatterns
#creational
#structural
#behavioral
Reference
この問題について(戦略パターン), 我々は、より多くの情報をここで見つけました https://dev.to/eidher/strategy-pattern-3oa4テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol