7. Strategyパターン

1.通常の機能を完全なものが、そのようなソートなど、さまざまな方法で使用することができますまた、クイックソートを使用することができ、あなたはバブルソートを使用することができ遭遇します。Strategyパターンは、様々な実装を完了するために一つのことがあるとき、あなたが実現する環境やその他の状況に応じてさまざまな方法を選択することができ、そのようなAの状況と一致しています。より便利な拡張と変更、ハードコーディングしないでください。アルゴリズムを実装し、分離して計算することができ繰り返しコードを避けます。

一例として、チベットに行くために、以下の2、私たちは電車、自転車、徒歩の旅に選択することができ、これらの3つの方法がラサにすることができます。私たちは、状況に応じた方法で移動するかを選択する柔軟性を持っています。

3.達成するために

パッケージcom.java.dp.strategy。

/ **
 * @Author lizhilong
 * @Create 2019年12月5日夜04時58分
 * @Desc旅行政策インタフェース
 * / 
パブリック インタフェーストラフィック{

    無効trafficType(文字列名)。
}
パッケージcom.java.dp.strategy。

/ **
 * @Author lizhilong
 * @Create 2019年12月5日夜04時59分
 * @Desc列車の旅
 * / 
パブリック クラス TrainTypeの実装交通{
    @オーバーライド
    公共 のボイドtrafficType(文字列名){
        System.out.println(名前 +「:ラサへの列車に乗り」);
    }
}
パッケージcom.java.dp.strategy。

/ **
 * @Author lizhilong
 * @Create 2019年12月5日夜05時01分
 * @Descウォーキングツアー
 * / 
パブリック クラス WalkType 実装交通{
    @オーバーライド
    公共 のボイドtrafficType(文字列名){
        System.out.println(名前 + ":ラサへ散歩" );
    }
}
パッケージcom.java.dp.strategy。

/ **
 * @Author lizhilong
 * @Create 2019年12月5日夜05時01分
 * @Desc自転車
 * / 
パブリック クラス BikeType 実装交通{
    @オーバーライド
    公共 のボイドtrafficType(文字列名){
        System.out.println(名前 +「:ラ・自転車に乗ります」);
    }
}
パッケージcom.java.dp.strategy。

輸入java.util.HashMapを;
輸入java.util.Map;

/ **
 * @Author lizhilong
 * @Create 2019年12月5日夜05時03分
 *旅行政策に選択@Desc
 * / 
パブリック クラスGoToTibet {

    プライベート  静的な地図<文字列、交通> strategyMap = 新しい HashMapの<> ();
    静的{
        strategyMap.put( "張"、新新TrainType());
        strategyMap.put( "小王"、BikeType());
        strategyMap.put( "小李"、WalkType());
    }

    公共 のボイドchooseTrafficType(文字列名){
       トラフィックトラフィック = strategyMap.get(名);
       traffic.trafficType(名);
    }
}
パッケージcom.java.dp.strategy。

/ **
 * @Author lizhilong
 * @Create 2019年12月5日夜05時05分
 * @desc
 * / 
パブリック クラスStrategyMain {


    パブリック 静的 ボイドメイン(文字列[]引数){
        GoToTibet goToTibet = 新しいGoToTibet();

        goToTibet.chooseTrafficType( "サリー" );
        System.out.println( "---------------------- \ N" );
        goToTibet.chooseTrafficType( "王" );
        System.out.println( "---------------------- \ N" );
        goToTibet.chooseTrafficType( "小李" );
    }
}
張:ラサへの列車に乗り
 ----------------------

王:ラサへの自転車に乗って
----------------------

マイク:ラサへウォーク

 

おすすめ

転載: www.cnblogs.com/li-zhi-long/p/11994450.html