有限狀態機

有限的狀態下,透過不同行為,產生不同狀態

status=f(status,action);//特定狀態下某個行為將產生新行為

需求題目

一個樂觀的人,當心情開心時,若唱歌、跳舞都將更快樂,但若被責罵則心情將變成沮喪

  • 狀態:樂觀、沮喪

  • 行為:唱歌、跳舞、責罵

public interface IStatus {
	String toStatus();
}




/**
 * 狀態行為
 * 
 * @author andy tsai
 *
 * @param <T>
 * @param <R>
 */
public interface IStatusAction<T extends IStatus, R> {

	/**
	 * 註冊行為
	 * 
	 * @param acion 行為定義
	 * @param function   行為
	 */
	void register(StatusAction acion, Function<T, R> function);

	/**
	 * 取得行為
	 * 
	 * @param statusAction 行為定義
	 * @return
	 */
	Function<T, R> getAction(StatusAction statusAction);

}

Last updated

Was this helpful?