首頁>技術>

策略模式(Strategy Pattern):

具有一定行動內容的相對穩定的策略名稱。

策略模式定義了一系列演算法,並將每個演算法封裝起來,使它們可以相互替換,且演算法的變化不會影響使用演算法的客戶;透過對演算法進行封裝,把使用演算法的責任和演算法的實現分割開來,並委派給不同的物件對這些演算法進行管理;

策略模式的角色:

抽象策略(Strategy)、具體策略(Concrete Strategy)和客戶端(Client)角色;

策略模式的案例:

實現類圖:

實現程式碼:

/** * 抽象策略(Strategy) */public interface Strategy {     void execute();    }
/** * 具體策略(Concrete Strategy) */public class FirstStrategy implements Strategy {     public void execute() {        System.out.println("FirstStrategy execute()");    }    }
/** * 具體策略(Concrete Strategy) */public class SecondStrategy implements Strategy {     public void execute() {    	System.out.println("SecondStrategy execute()");    }    }
/** * 具體策略(Concrete Strategy) */public class ThirdStrategy implements Strategy {     public void execute() {    	System.out.println("ThirdStrategy execute()");    }    }
public class Context {     private Strategy strategy;     public Context(Strategy strategy) {        this.strategy = strategy;    }     public void execute() {        this.strategy.execute();    } }
/** * 客戶端 */public class Client {	public static void main(String[] args) {		Context context = null;		context = new Context(new FirstStrategy());		context.execute();		context = new Context(new SecondStrategy());		context.execute();		context = new Context(new ThirdStrategy());		context.execute();	}}

6
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • autojs之詞雲