効率的な別れ996、効率的な戦闘をプログラミングドアを開ける2-3のjava:ハードコーディングされたビジネス・ロジック

1.1キー

1.2プログラミングコード

 

 

1.1キー

使用列挙クラス(SkuCategoryEnum)。

(テストクラス)JSONtoString法を用いて、

利用(商品やサービスのクラス)の二つの異なるリスト。

addメソッドのリスト

 

 

1.2プログラミングコード

要件:

11人のダブルプログラマはベビーカートに多くを追加、プログラマは女性の友人の流域は、すべてのフィルタリングを開始した電子式の製品を

 

製品のエンティティクラス:

以下のためのパッケージ変更com.imooc.zhangxiaoxi.lambda.cart; 

/ ** 
 *商品
 * / 
パブリック クラスSKU {
     プライベート整数SKUID;       // 製品番号
    プライベート文字列skuName;      // 製品名
    プライベートダブルskuPrice;     // 商品価格
    のプライベート整数totalnum ;    // アイテムの数
    プライベートダブルtotalPrice;   // 合計
    プライベート列挙skuCategory;    // 列挙型品種

    公共SKU(SKUID整数、文字列skuName、skuPriceダブル、整数totalnum、ダブルtotalPrice、列挙skuCategory){
        この .skuId = SKUID。
        この .skuName = skuName。
        この .skuPrice = skuPrice。
        この .totalNum = totalNum。
        この .totalPrice = totalPrice。
        この .skuCategory = skuCategory。
    } 

    パブリック整数getSkuId(){
         戻りSKUIDと、
    } 

    パブリック文字列getSkuName(){
         戻りskuNameと、
    } 

    公共ダブルgetSkuPrice(){
         戻りskuPriceと、
    } 

    パブリック整数getTotalNum(){
         戻りtotalNumと、
    } 

    パブリック多数価格(所与ダブル){
         返す合計金額を、
    } 

    パブリック列挙getSkuCategory(){
         戻りskuCategoryと、
    } 
}

 

製品のクラス:

以下のためのパッケージ変更com.imooc.zhangxiaoxi.lambda.cart; 

インポートはjava.util.ArrayList;
 インポートはjava.util.List; 

パブリック クラスCartService { 

    / ** 
     *匿名内部クラス、メモリリークのリスク、生産プロジェクトが参照されていないが、そこにあるが、ラムダ式の参照をバックアップする
     * / 
    プライベート 静的の一覧<SKU> = skuList 新しい新しいのArrayList <SKU> (){ 
        { 
            追加(新新 SKU(2020001、 "UAV"、999.00,1,999.00 、SkuCategoryEnum.ELECTRONICS)); 
            追加(新しい新しい SKU(2020002、 "Tシャツ" 50.00,2,100.00 、SkuCategoryEnum.CLOTHING)); 
            追加(新しい新しい "人間の絆" SKU(2020003、30.00,1,30.00、SkuCategoryEnum.BOOKS)); 
            追加(新新 SKU(2020004、 "オールド・マン"、20.00,1,20.00 、SkuCategoryEnum.BOOKS)); 
            追加(新新 SKU(2020005、288.00,1,288.00 "安全性と効率的なプログラミングを証明します" 、 SkuCategoryEnum.BOOKS)); 
            追加(新新 SKU(2020006、 "バルク靴"、300.00,1,300.00 、SkuCategoryEnum.CLOTHING)); 
            追加(新新 SKU(2020007、 "バーベル"、2000.00,1,2000.00 、SkuCategoryEnum.SPROTS)) ; 
            追加(新新 SKU(2020008、 "ThinkPad機能"、5000.00,1,5000.00 、SkuCategoryEnum.ELECTRONICS)); 
        } 

    }; 

    パブリック 静的リスト<SKU>getSkuList(){
        リターンskuList; 
    } 

    / ** 
     * versionTestA 
     *ショッピングカートを見つけ、すべての電子製品
     * 
     *ループのためのノート
     (SKU SKU:skuList)のための*を使用
     * @return 
     * / 
    パブリック 静的リスト<SKU> getElectronicsSkuList(一覧<SKU> skuList){ 
        リスト <SKU> = lElectronicsList 新しい新規のArrayList <SKU> ();
         (SKU SKU用:skuList){
            IF sku.getSkuCategory() .equals(SkuCategoryEnum.ELECTRONICS)){ 
                lElectronicsList.add(SKU); 
            } 
        } 
/ *
        以下のために(INT iは= 0; I <skuList.size(); I ++){ 
            IF(。skuList.get(I).getSkuCategory()に等しい(SkuCategoryEnum.ELECTRONICS)){ 
                lElectronicsList.add(skuList.get(I)) ; 
            } 
        } 
* / 
        戻りlElectronicsList。
    } 

    


}

 

列挙クラス:

パッケージcom.imooc.zhangxiaoxi.lambda.cart; 

/ ** 
 *使用して列挙クラス
 * / 
パブリック 列挙SkuCategoryEnum { 

    服( 10、 "衣類" )、
    エレクトロニクス( 20は、 "エレクトロニクス"である
    Sprots( 30 「スポーツ」)、
    書籍( 40、「ブックタイプ」)、

    プライベート整数コード; // コード値
    プライベート文字列名; // 名前

    SkuCategoryEnum(コード整数、文字列名){ 
        この .CODE = コード;
         この .nameの= 名前; 
    } 
}

 

 

テストカテゴリ:

パッケージcom.imooc.zhangxiaoxi.lambda.cart。

輸入com.alibaba.fastjson.JSON;
輸入org.junit.Test; 

輸入はjava.util.List; 

パブリック クラスVersionTestA { 

    @Test 
    / ** 
     *筛选出电子类型产品
     * / 
    パブリック 無効getElectronicsSkuList(){ 
        一覧 <SKU> skuList = CartService.getSkuList(); 
        一覧 <SKU> electronicList = CartService.getElectronicsSkuList(skuList)。
        System.out.println( "electronicList ==" + JSON.toJSONString(electronicList、)); 
    } 
}

 

 

ログを出力します:

electronicList == [ 
    {
         "skuCategory": "エレクトロニクス"  "SKUID":2020001  "skuName": "无人机"  "skuPrice":999.0  "totalNum":1  "totalPrice":999.0 
    }、
    {
         " skuCategory ":" ELECTRONICS」 "SKUID":2020008  "skuName": "ThinkPadの"  "skuPrice":5000.0  "totalNum":1  "totalPrice":5000。0 
    } 
] 

プロセスの終了コードで終了 0

 

おすすめ

転載: www.cnblogs.com/1446358788-qq/p/12602751.html