国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

策略模式學習

boredream / 1759人閱讀

摘要:策略模式在構造方法或方法中初始化各自需要的策略模式代碼策略接口具體策略具體策略上下文抽象類我理解的這個類的作用是負責策略與用戶使用者的連接,也是策略模式的入口持有一個具體策略的對象構造函數,傳入一個具體策略對象策略方法具體環境類應用場景多個

策略模式UML:

ContextType1、ContextType2在構造方法或set方法中初始化各自需要的StrategyType

策略模式代碼

/**
 * 策略接口
 */
public interface Strategy {
    
    public void strategyInterfaceMethod();
}
/**
 * 具體策略A
 */
public class StrategyTypeA implements Strategy {
    @Override
    public void strategyInterfaceMethod() {
        // todo someting
    }
}
/**
 * 具體策略B
 */
public class StrategyTypeB implements Strategy {
    @Override
    public void strategyInterfaceMethod() {
        // todo someting
    }
}

/**
 * 上下文抽象類
 * 我理解的這個類的作用是:負責策略與用戶(使用者)的連接,也是策略模式的入口
 */
public AbstractClass Context {
    //持有一個具體策略的對象
    private Strategy strategy;
    /**
     * 構造函數,傳入一個具體策略對象
     * @param strategy
     */
    public Context(Strategy strategy){
        this.strategy = strategy;
    }
    /**
     * 策略方法
     */
    public void contextMethod(){
        strategy.strategyInterfaceMethod();
    }
}

/**
 * 具體環境類
 */
public Class ContextType1 extends Context{
    public void contextMethod(){
        strategy.strategyInterfaceMethod();
        // todo something
    }
}

應用場景: 多個用戶購買不同型號電腦

public class Client {
    public static void main(String[] args) {
        // 客戶需要定制自己需要的策略
        // 策略1--購買戴爾電腦
        Strategy dell = new StrategyTypeA();
        dell.setCPU("AMD");
        dell.setScreen("LGD");
        
        // 策略2
        Strategy macbook = new StrategyTypeB();
        macbook.setCPU("Intel");
        macbook.setScreen("sansung");

        // 購買的是dell電腦
        // 用戶將自己需要的策略(電腦配置)交給商家
        ContextType1 customer1 = new ContextType1(dell);
        // buyComputer方法中的strategy.strategyInterfaceMethod(); = StrategyTypeA.strategyInterfaceMethod();
        customer1.buyComputer();

        // 購買的是macbook
        ContextType2 customer2 = new ContextType2(macbook);  
        // buyComputer方法中的strategy.strategyInterfaceMethod(); = StrategyTypeB.strategyInterfaceMethod();      
        customer2.buyComputer();
    }
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71609.html

相關文章

  • 策略模式學習

    摘要:可以避免使用多重條件轉移語句缺點客戶端必須知道所有的策略類,并自行決定使用哪一個策略類。不希望客戶端知道復雜的與算法相關的數據結構,在具體策略類中封裝算法和相關的數據結構,提高算法的保密性與安全性。在中的應用中的四種拒絕策略 定義 策略模式是對象行為模式的一種定義三要素: 一組不同的算法(策略),各有優劣 實現了同一接口,之間可以互相替換 在不同的業務場景下,調用方依據業務決定調用哪...

    adam1q84 評論0 收藏0
  • 慕課網_《模式的秘密之策略模式學習總結

    時間:2017年08月31日星期四說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學源碼:https://github.com/zccodere/s...學習源碼:https://github.com/zccodere/s... 第一章:策略模式簡介 1-1 簡介 課程大綱 什么是策略模式 策略模式如何實現 策略模式總結篇 實例案例分享 日常生活中的策略 Wor...

    zhongmeizhi 評論0 收藏0
  • JavaScript設計模式學習策略模式

    摘要:什么是策略模式策略模式,就是將不同的算法各自封裝起來,然后根據程序的不同情況,采用不同的算法,有點像工廠模式。在其他語言中,實現這樣的思路也比較費勁,而得函數非常靈活,本來可以當值傳遞,所以實現策略模式非常輕松,也很靈活。 什么是策略模式 策略模式,就是將不同的算法各自封裝起來,然后根據程序的不同情況,采用不同的算法,有點像工廠模式。比如在很多種情況下,都要寫ifXXX dosomet...

    snifes 評論0 收藏0
  • Python學習之路25-使用一等函數實現設計模式

    摘要:本篇主要講述中使用函數來實現策略模式和命令模式,最后總結出這種做法背后的思想。 《流暢的Python》筆記。本篇主要講述Python中使用函數來實現策略模式和命令模式,最后總結出這種做法背后的思想。 1. 重構策略模式 策略模式如果用面向對象的思想來簡單解釋的話,其實就是多態。父類指向子類,根據子類對同一方法的不同重寫,得到不同結果。 1.1 經典的策略模式 下圖是經典的策略模式的U...

    econi 評論0 收藏0
  • PHP設計模式系列之入門

    摘要:設計模式系列之入門設計模式是一套被反復使用多數人知曉的經過分類編目的代碼設計經驗的總結。毫無疑問,設計模式于己于他人于系統都是多贏的設計模式使代碼編制真正工程化設計模式是軟件工程的基石脈絡,如同大廈的結構一樣。 PHP設計模式系列之入門 設計模式(Design pattern)是一套被反復使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易...

    animabear 評論0 收藏0

發表評論

0條評論

boredream

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<