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

狀態(State)模式

系統 1793 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元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 沅江市| 保康县| 清流县| 昌江| 岑巩县| 濉溪县| 清原| 枣强县| 武平县| 全南县| 偏关县| 华池县| 砚山县| 上虞市| 扬中市| 孟村| 铜陵市| 焦作市| 古交市| 上虞市| 株洲市| 新蔡县| 阜康市| 石渠县| 延庆县| 英山县| 陆良县| 大同县| 阿图什市| 卢氏县| 温州市| 舞阳县| 浦江县| 长子县| 黄龙县| 桂林市| 江永县| 中卫市| 康马县| 虞城县| 阿拉尔市|