日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

策略(Strategy)模式

系統 1825 0

策略模式的用意是針對一組算法,將每一個算法封裝到具有共同接口的獨立的類中,從而使得它們可以相互替換。策略模式使得算法可以在不影響到客戶端的情況下發生變化。策略模式相當于"可插入式(Pluggable)的算法。

一,結構:

?

?

?

?

?

?

?

?

?

?

?

?

環境(Context)角色 :持有一個Strategy類的引用。

抽象策略(Strategy)角色 :這是一個抽象角色,通常由一個接口或抽象類實現。此角色給出所有的具體策略類所需的接口。

具體策略(ConcreteStrategy)角色 :包裝了相關的算法或行為。

二,示例代碼

    /**
 * 抽象策略(Strategy)角色
 * @author Salmon
 *
 */
public interface Strategy {
	public void algorithmInterface();
}

/**
 * 具體策略(ConcreteStrategy)角色
 * @author Salmon
 *
 */
public class ConcreteStrategyA implements Strategy {
	public void algorithmInterface() {
		System.out.println("Called ConcreteStrategyA.algorithmInterface()");
	}
}

/**
 * 具體策略(ConcreteStrategy)角色
 * @author Salmon
 *
 */
public class ConcreteStrategyB implements Strategy {
	public void algorithmInterface() {
		System.out.println("Called ConcreteStrategyB.algorithmInterface()");
	}
}

/**
 * 具體策略(ConcreteStrategy)角色
 * @author Salmon
 *
 */
public class ConcreteStrategyC implements Strategy {
	public void algorithmInterface() {
		System.out.println("Called ConcreteStrategyC.algorithmInterface()");
	}
}

/**
 * 環境(Context)角色
 * @author Salmon
 *
 */
public class Context {
	Strategy strategy;

	public Context(Strategy strategy) {
		this.strategy = strategy;
	}

	public void contextInterface() {
		strategy.algorithmInterface();
	}
}

/**
 * 客戶端代碼
 * @author Salmon
 * 
 */
public class Client {
	public static void Main(String[] args) {
		Context c = new Context(new ConcreteStrategyA());
		c.contextInterface();

		Context d = new Context(new ConcreteStrategyB());
		d.contextInterface();

		Context e = new Context(new ConcreteStrategyC());
		e.contextInterface();
	}
}
  

?

策略(Strategy)模式


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 玉山县| 富阳市| 灵山县| 大兴区| 随州市| 乐至县| 隆子县| 榆中县| 嘉义县| 平利县| 桐柏县| 涞水县| 互助| 内乡县| 军事| 那坡县| 平山县| 华坪县| 土默特左旗| 河池市| 台东市| 松江区| 苏尼特左旗| 沈丘县| 柳江县| 晴隆县| 西乌珠穆沁旗| 三台县| 丹寨县| 湄潭县| 融水| 花莲市| 称多县| 阿勒泰市| 家居| 施秉县| 锡林浩特市| 皮山县| 保亭| 陆河县| 孙吴县|