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

狀態(State)模式

系統 1689 0

在軟件構建過程中,某些對象的狀態如果改變,其行為也會隨之而發生變化。

如何在運行時根據對象的狀態來透明地更改對象的行為?而不會為對象操作和狀態轉化之間引入緊耦合?允許一個對象在其內部狀態改變時改變它的行為。從而使對象看起來似乎修改了其行為。

一,結構:

?

?

?

?

?

?

?

?

?

?

?

?

?

二,示例代碼:

    public interface State {
	public void handle(Context context);
}

class ConcreteStateA implements State {
	public void handle(Context context) {
		context.set_state(new ConcreteStateB());
	}
}

class ConcreteStateB implements State {
	public void handle(Context context) {
		context.set_state(new ConcreteStateA());
	}
}

public class Context {

	private State _state;

	public Context(State state) {
		this._state = state;
	}

	public void request() {
		_state.handle(this);
	}

	public State get_state() {
		return _state;
	}

	public void set_state(State _state) {
		this._state = _state;
	}
}

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

  

?

狀態(State)模式


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 英吉沙县| 景宁| 防城港市| 巴东县| 北川| 汝阳县| 莱阳市| 六枝特区| 娱乐| 白城市| 广宗县| 曲沃县| 尉犁县| 若尔盖县| 通州区| 石河子市| 自贡市| 仙居县| 天柱县| 康平县| 安多县| 依兰县| 武乡县| 建昌县| 泌阳县| 敦煌市| 靖远县| 临泉县| 新建县| 杭锦后旗| 桦川县| 定兴县| 克什克腾旗| 兰坪| 南木林县| 高尔夫| 平遥县| 连山| 郯城县| 南丹县| 广宁县|